美文网首页
手动切换测试环境

手动切换测试环境

作者: 异乡人_4f2a | 来源:发表于2021-04-26 19:24 被阅读0次

如上图所示手动切换环境:

1、先实现一个切换环境的类

#import  <Foundation/Foundation.h>

@interface ChangeEnvironment : NSObject

+ (instancetype)sharedInstance;

//切换环境

- (void)changeEnvironment;

//获得当前环境

- (NSString *)currentEnvironment;

@end

#import "ChangeEnvironment.h"

#import  <MGRequest.h>

#define kUrlKey @"urlKey"

//内网环境

static NSString *const devConfig = @"0";

//外网环境

static NSString *const prodConfig = @"1";

@implementation ChangeEnvironment

+ (instancetype)sharedInstance {

    staticChangeEnvironment * sharedInstance =nil;

    staticdispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        sharedInstance = [[ChangeEnvironment alloc] init];

    });

    returnsharedInstance;

}

//切换环境

- (void)changeEnvironment {

    NSString *title=@"切换环境";

    NSString *subTitle=@"重启后生效, 放弃切换环境请点击取消";

    UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:subTitle preferredStyle:UIAlertControllerStyleActionSheet];

    //修改title

    NSMutableAttributedString *alertControllerStr = [[NSMutableAttributedString alloc] initWithString:title];

    [alertControllerStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:20] range:NSMakeRange(0, alertControllerStr.length)];

    [alert setValue:alertControllerStr forKey:@"attributedTitle"];

    //修改message

    NSMutableAttributedString *alertControllerMessageStr = [[NSMutableAttributedString alloc] initWithString:subTitle];

    [alertControllerMessageStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16] range:NSMakeRange(0, alertControllerMessageStr.length)];

    [alert setValue:alertControllerMessageStr forKey:@"attributedMessage"];

    NSString *currentEnvironment =@"";

    [alert addAction:[UIAlertAction actionWithTitle:@"内网环境"style:UIAlertActionStyleDefault handler:^(UIAlertAction *_Nonnullaction) {

        //内网环境

        [[NSUserDefaults standardUserDefaults] setObject:devConfig forKey:kUrlKey];

        //重置请求的基url

        [selfresetRequestBaseUrl];

    }]];

    [alert addAction:[UIAlertAction actionWithTitle:@"外网环境"style:UIAlertActionStyleDestructive handler:^(UIAlertAction *_Nonnullaction) {

        //外网环境

        [[NSUserDefaults standardUserDefaults] setObject:prodConfig forKey:kUrlKey];

        //重置请求的基url

        [selfresetRequestBaseUrl];

    }]];

    [alert addAction:[UIAlertAction actionWithTitle:@"取消"style:UIAlertActionStyleCancel handler:^(UIAlertAction *_Nonnullaction) {

    }]];

    NSLog(@"currentEnvironment = %@", currentEnvironment);

    //当前选择的视图控制器需要自己赋值,比如tabbar的didSelectViewController里

    [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alert animated:YEScompletion:nil];

}

//获得当前环境

- (NSString *)currentEnvironment {

    //默认测试环境

    NSString *currentEnvironment = devConfig;

    if([[NSUserDefaults standardUserDefaults] objectForKey:kUrlKey]) {

        currentEnvironment=[[NSUserDefaults standardUserDefaults] objectForKey:kUrlKey];

    }

    returncurrentEnvironment;

}

- (void)resetRequestBaseUrl {

#pragma mark- 切换内网环境和外网环境

    if([[ChangeEnvironment sharedInstance].currentEnvironment isEqualToString:@"0"]) {

        NSLog(@"内网环境。。。。。。。");

        //测试环境

        [MGRequest setDefaultUrl:@"内网环境地址"];

        [[NSUserDefaults standardUserDefaults] setObject:devConfig forKey:kUrlKey];

        [[NSUserDefaults standardUserDefaults] synchronize];

    }elseif([[ChangeEnvironment sharedInstance].currentEnvironment isEqualToString:@"1"]) {

        NSLog(@"外网环境。。。。。。。");

        //外网环境

        [MGRequest setDefaultUrl:@"外网环境地址"];

        [[NSUserDefaults standardUserDefaults] setObject:prodConfig forKey:kUrlKey];

        [[NSUserDefaults standardUserDefaults] synchronize];

    }

}

@end

2、调用切换环境的类即可:

相关文章

  • 手动切换测试环境

    如上图所示手动切换环境: 1、先实现一个切换环境的类 #import

  • 问题分类

    1,UCTS 问题 *UCTS 测试Fail 但环境不变的情况下手动测试PASS *辅助判定法:同样的环境,切换为...

  • 使用 Jenkins 实现Android自动化打包和踩坑经历

    每当有项目做的过程中,测试需要做单元测试,每次手动的切换生产和测试环境,切换各种推送、统计和第三方账号相当的麻烦,...

  • iOS多target下的自动构建

    项目中测试,开发,本地各种环境每次都需要注释或者手动切换环境,每天都需要打各种不同环境的包,这些重复而繁琐的工作,...

  • {C#-05} 单测的逻辑

    背景 单测未写,理论先行 手动测试的痛点 混为集成测试(ex. 切换窗体|访问数据库),BUG难定位 环境依赖,e...

  • iOS创建多个Target以管理项目不同的环境配置

    在每个项目的开发过程中都会涉及到 测试环境与发布环境得切换。最原始得方式是 每次运行与打包都手动修改环境配置代码,...

  • 使用Jenkins对前端进行持续集成

    背景 目前公司测试环境前端项目部署,是由测试人员负责手动操作。当需要更新测试环境版本时,测试同事需要手动操作以下过...

  • Android 配置build.gradle实现快速切换开发环境

    在开发过程中,难免会有两套或者更多的环境(测试环境和正式环境等)。针对不同的环境,手动来回切换难免是一件很麻烦的事...

  • 测试环境切换

    一、web切换测试环境 第一种方法:Chrome插件,这个方法修改测试环境后只有Chrome浏览器环境被切换,其他...

  • Sublime离线安装ConvertToUTF8插件

    最近开发环境切换了下,Sublime之前都在windows下直接安装的,但是现在切换到离线环境,很多插件需要手动安...

网友评论

      本文标题:手动切换测试环境

      本文链接:https://www.haomeiwen.com/subject/ecnerltx.html