主要目标在应用程序组容器目录中存储了一些数据。我正在运行一些xcui测试。是否可以从测试运行器访问容器的数据?替代品?
在我看来,答案是否定的,因为containerURL(forSecurityApplicationGroupIdentifier:)
方法返回nil
。
谢谢!
答案 0 :(得分:1)
实际上,您可以!
模拟器: 将共享数据写入/复制到此位置; UITestRunner和您的应用程序都应该可以访问它。记住要有一种机制来确保这不会影响生产代码。
NSString * pathAsString = [NSProcessInfo processInfo].environment[@"SIMULATOR_SHARED_RESOURCES_DIRECTORY"];
设备: 您的UITestRunner应该与被测试的应用共享相同的组标识符。然后,您可以访问共享资源文件夹。这在Simulator上不起作用,因为UITestRunner未针对模拟器目标进行签名,并且必须对其进行签名并且是Shared Group的一部分才能访问该组。
NSURL *containerURL = [NSFileManager.defaultManager containerURLForSecurityApplicationGroupIdentifier:groupIdentifier];
Paulo Andrade有一篇不错的博客文章,介绍了如何执行此操作: https://pfandrade.me/blog/managing-ios-ui-testing-fixtures/
答案 1 :(得分:0)
我同意,你不能。 您可以创建一种“调试视图”来显示内容,并仅将其启用以执行UITest。