ios – Xcode 7 UI测试后,如何重新设置每次测试后的应用程序数据
发布时间:2020-12-15 02:00:08 所属栏目:百科 来源:网络整理
导读:苹果在Xcode 7中引入了新的UI测试,但是每当测试启动应用程序时,我都会遇到困难,它以应用程序以前的数据开始。这意味着测试不能独立,可以受其他测试的影响。 由于运行测试的应用程序无法访问测试应用程序的捆绑包,因此无法访问用户默认值和其他数据。脚
苹果在Xcode 7中引入了新的UI测试,但是每当测试启动应用程序时,我都会遇到困难,它以应用程序以前的数据开始。这意味着测试不能独立,可以受其他测试的影响。
由于运行测试的应用程序无法访问测试应用程序的捆绑包,因此无法访问用户默认值和其他数据。脚本也没有问题,因为它们可以在测试之前或之后运行。而没有办法在iOS上执行NSTask,以便在每个测试套件之前运行脚本。 有没有办法在每个测试套件之前重置应用程序数据? 解决方法
不是直接的方式。但是有一些解决方法。
XCUIApplication可以设置可以改变应用程序行为的命令行参数和环境变量。 一个简单的main.m文件示例: int main(int argc,char * argv[]) { #if DEBUG // Reset all data for UI Testing @autoreleasepool { for (int i = 1; i < argc; ++i) { if (0 == strcmp("--reset-container",argv[i])) { NSArray *folders = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES); NSFileManager *fm = [[NSFileManager alloc] init]; for (NSString *path in folders) { [fm removeItemAtPath:path error:nil]; } // Also remove documents folder if necessary... } } } #endif @autoreleasepool { return UIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegate class])); } } 在 – [XCTestCase setUp]中添加: XCUIApplication *app = [[XCUIApplication alloc] init]; app.launchArguments = @[@"--reset-container"]; [app launch]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 什么是最像Ruby的方式生成3个正整数的每个独特组合,最多可加
- PostgreSQL:ERROR,0A000,"cached plan must not chang
- ruby-on-rails – Ruby on Rails Form有两个参数
- Oracle11gR2在Windows Server上停止在2%的处理方式
- XML--重新认识
- NOSQL数据库简介
- reactjs – 材料UI自动完成不在React应用程序中的远程dataS
- PostgreSQL数据库日常学习笔记15-修改表
- FlashDevelop 使用问题解决
- cocoapods Target overrides the `OTHER_SWIFT_FLAGS` buil