ios – Xcode 7 UI测试后,如何重新设置每次测试后的应用程序数据?

ios – Xcode 7 UI测试后,如何重新设置每次测试后的应用程序数据?,第1张

概述苹果在Xcode 7中引入了新的UI测试,但是每当测试启动应用程序时,我都会遇到困难,它以应用程序以前的数据开始。这意味着测试不能独立,可以受其他测试的影响。 由于运行测试的应用程序无法访问测试应用程序的捆绑包,因此无法访问用户默认值和其他数据。脚本也没有问题,因为它们可以在测试之前或之后运行。而没有办法在iOS上执行NSTask,以便在每个测试套件之前运行脚本。 有没有办法在每个测试套件之前重置 苹果在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];
总结

以上是内存溢出为你收集整理的ios – Xcode 7 UI测试后,如何重新设置每次测试后的应用程序数据?全部内容,希望文章能够帮你解决ios – Xcode 7 UI测试后,如何重新设置每次测试后的应用程序数据?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1072696.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存