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

Posted

技术标签:

【中文标题】Xcode UI 测试:我可以使用 UI 测试脚本访问目标应用程序文件夹吗?【英文标题】:Xcode UI Testing: Can I use UI Testing scripts to access the target app folder? 【发布时间】:2015-09-01 05:54:14 【问题描述】:

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

 NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

该方法只能返回UI Testing APP文档的路径,不能返回目标应用。

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

【问题讨论】:

【参考方案1】:

我为此写了short blog post。

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

一旦任何给定的 UITest 开始运行,第一次交互就是与文本字段。文本字段将成为第一响应者(使用辅助功能标签),从而导致键盘在屏幕上滑动。

然后测试将继续与键盘交互并键入一个字符串,然后再按键盘上的“返回”键。键盘关闭,字符串被发送到 UITextFieldDelegate。

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

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

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

【讨论】:

【参考方案2】:

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

如果您希望测试该文件。在测试项目中创建该文件并检查。

【讨论】:

非常感谢您的热心回复。那会有点难过。如果测试目标是单元测试,它将获取目录。但是,对于 UI 测试,它似乎作为另一个应用程序运行。 :( @June - 我建议您向 Apple 提交功能请求雷达。这样他们就可以意识到他们的设计存在开发人员需要的限制。

以上是关于Xcode UI 测试:我可以使用 UI 测试脚本访问目标应用程序文件夹吗?的主要内容,如果未能解决你的问题,请参考以下文章

用于 UI 测试的 Xcode 自动化工具

在 Xcode UI 测试期间检查电子邮件?

如何在 Xcode UI 测试脚本中执行点击和拖动?

Xcode Swift UI 测试 - 模拟器硬件键盘

在 UI 测试期间,如何使用 Xcode 7 截取我的 UI 截图?

是否可以在 Xcode 7 自动化 UI 测试中存根 HTTP 请求?