当我创建 UI 测试脚本时,我遇到了一个问题。我需要访问在目标 APP 文件夹下创建的日志文件。但是,UI 测试 APP 正在作为另一个线程运行。
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
该方法只能返回 UI Testing APP 文档的路径,不能返回目标应用。
有没有办法访问目标应用程序的文件夹?
当我创建 UI 测试脚本时,我遇到了一个问题。我需要访问在目标 APP 文件夹下创建的日志文件。但是,UI 测试 APP 正在作为另一个线程运行。
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
该方法只能返回 UI Testing APP 文档的路径,不能返回目标应用。
有没有办法访问目标应用程序的文件夹?
我为此写了一篇简短的博客文章。
对我来说,一个短期的解决方案是创建一个用户不知道的 UITextField。UITesting 目标将与 textField 交互并键入代码,作为 UITest 的一部分。
一旦任何给定的 UITest 开始运行,第一次交互就是与文本字段。文本字段将成为第一响应者(使用辅助功能标签),从而导致键盘在屏幕上滑动。
然后,测试将继续与键盘交互并键入一个字符串,然后再按键盘上的“return”键。键盘关闭,字符串被发送到 UITextFieldDelegate。
该字符串表示一个文件名。我建立了一个代码系统,对应于我隐藏的 .zip 文件。各种测试输入的每个代码都对应于包含我在 docs 目录中需要的数据版本的 zip 文件。
所以这只是在 UITest 继续之前解压缩数据并将其写入 docs 文件夹的情况。
我已向 Apple 发送功能请求,以通过 UITest 目标访问候选应用程序文档目录。
由于您的应用程序是沙盒的,因此您无法访问该应用程序的文档目录。参考https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheiOSEnvironment/TheiOSEnvironment.html#//apple_ref/doc/uid/TP40007072-CH9-SW1
如果您希望测试该文件。在测试项目中创建该文件并检查。