如何在现有的 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?

如何在现有的 iOS 应用程序中开始集成汽车游戏?

如何在现有的 Cognito 用户池中获取生日? (放大 iOS)

如何在现有的 Android 操作系统源中添加额外的项目?

如何在现有的Vue项目中嵌入 Blazor项目?

如何在现有的 Windows 应用程序中获得 ATL 支持