首页 > 解决方案 > 从测试运行程序访问 App Groups 容器目录

问题描述

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

对我来说,答案似乎是否定的,因为containerURL(forSecurityApplicationGroupIdentifier:)方法返回nil

谢谢!

标签: xcuitest

解决方案


其实,你可以!

模拟器: 将您的共享数据写入/复制到该位置;UITestRunner 和您的应用程序都应该可以访问它。记住要有一个机制来确保这不会进入生产代码。

NSString * pathAsString = [NSProcessInfo processInfo].environment[@"SIMULATOR_SHARED_RESOURCES_DIRECTORY"];

设备: 您的 UITestRunner 应该与被测应用共享相同的组标识符。然后您可以访问共享资源文件夹。这在模拟器上不起作用,因为 UITestRunner 没有为模拟器目标签名,它必须经过签名并且是共享组的一部分才能访问该组。

NSURL *containerURL = [NSFileManager.defaultManager containerURLForSecurityApplicationGroupIdentifier:groupIdentifier];

Paulo Andrade 有一篇关于如何做到这一点的不错的博客文章: https ://pfandrade.me/blog/managing-ios-ui-testing-fixtures/


推荐阅读