从测试运行器访问应用程序组容器目录

时间:2019-09-16 17:51:35

标签: xcuitest

主要目标在应用程序组容器目录中存储了一些数据。我正在运行一些xcui测试。是否可以从测试运行器访问容器的数据?替代品?

在我看来,答案是否定的,因为containerURL(forSecurityApplicationGroupIdentifier:)方法返回nil

谢谢!

2 个答案:

答案 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。