Xcode UI 测试:我可以使用 UI 测试脚本来访问目标应用程序文件夹吗?

Xcode UI Testing: Can I use UI Testing scripts to access the target app folder?

当我创建 UI 测试脚本时,我遇到了一个问题。 我需要访问在目标 APP 文档文件夹下创建的日志文件。 但是,UI 测试应用程序是 运行 作为另一个线程。

 NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

此方法只能return UI 测试APP文档的路径,而不是目标应用程序。

有没有办法访问目标应用程序的文件夹?

由于您的应用程序是沙盒化的,因此您无法访问该应用程序的文档目录。参考 https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheiOSEnvironment/TheiOSEnvironment.html#//apple_ref/doc/uid/TP40007072-CH9-SW1

如果你想测试那个文件。也在测试项目中创建该文件并检查。

我写了一个关于这个的 short blog post

我的一个短期解决方案是创建一个用户不知道的 UITextField。作为 UITest 的一部分,UITesting 目标将与文本字段交互并键入代码。

任何给定的 UITest 启动后 运行,第一个交互是与文本字段的交互。文本字段将成为第一响应者(使用可访问性标签),这会导致键盘在屏幕上滑动。

然后测试将继续与键盘交互并键入字符串,然后在键盘上按下 'return' 键。键盘关闭,字符串被发送到 UITextFieldDelegate。

该字符串表示一个文件名。我建立了一个代码系统,对应于我藏起来的 .zip 文件。各种测试输入的每个代码都对应于 zip 文件,其中包含我在 docs 目录中需要的数据版本。

所以这只是在 UITest 继续之前解压数据并将其写入 docs 文件夹的情况。

我已向 Apple 发送功能请求,要求通过 UITest 目标访问候选应用程序文档目录。