如何在现有的 ios 测试项目中启用 xcode 7 UI 测试
Posted
技术标签:
【中文标题】如何在现有的 ios 测试项目中启用 xcode 7 UI 测试【英文标题】:How to enable xcode 7 UI testing in existing ios Test project 【发布时间】:2015-09-28 20:30:36 【问题描述】:在现有的 ios 应用和项目中,如何启用现有的测试目标和类以支持 UI 测试和记录 UI 测试按钮?
我可以添加一个新的测试目标,如果我这样做我会看到记录按钮,但是如果我想向现有的测试类和目标添加一些 UI 测试功能怎么办?
【问题讨论】:
【参考方案1】:UI 测试与普通单元测试用例位于不同的目标中,因此您不能只将 UI 测试添加到现有测试用例中。
【讨论】:
【参考方案2】:您应该使用新的 UI 测试目标来添加/执行您的 ui 测试,以实现干净的构建和维护目的。但是,假设您尝试在单元测试类中调用 XCUI* API 并使用单元测试目标启用 UI 记录,我看到那里出现了几个问题,
-
如果您使用 swift2 进行单元测试并使用
@testable import module
包含您的主要应用程序模块,当您从此测试用例调用 XCUI* 方法时,swift 将抛出错误
模块 module 未编译用于测试
由于 UI 测试作为单独的进程运行,它无法加载您的应用代码依赖项。
-
由于 XCUI* api 依赖于 Obj-C 库,调用 UI 测试方法需要您在单元测试目标中包含 Objective-C 桥接头文件。它不会出错,但会污染您的目标。
我还验证了您需要将测试用例文件添加到 UI 测试目标才能启用 UI 测试录制按钮。
将 UI 测试作为单独的目标运行还有其他好处,例如,可以灵活地指定目标以仅从命令行工具运行单元测试或 UI 测试,并且易于维护 UI 测试执行的干净状态。
【讨论】:
以上是关于如何在现有的 ios 测试项目中启用 xcode 7 UI 测试的主要内容,如果未能解决你的问题,请参考以下文章
如何在现有的基于 Storyboard 的项目中设置 @EnvironmentObject?