如何在现有 ios 测试项目中启用 xcode 7 UI 测试

How to enable xcode 7 UI testing in existing ios Test project

在现有的 ios 应用程序和项目中,如何启用现有的测试目标和 classes 以支持 UI 测试和记录 UI 测试按钮?

我可以添加一个新的测试目标,如果我这样做的话我会看到记录按钮,但是如果我想添加一些 UI 测试函数到现有的测试 class 和目标?

UI 测试在与普通单元测试用例不同的目标中,因此您不能只向现有测试用例添加 UI 测试。

您应该使用新的 UI 测试目标来 add/execute 您的 ui 清洁 build 和维护 purpose.However 测试,假设您正在尝试在您的单元测试中调用 XCUI* API 类 并启用 UI 单元测试目标记录,我看到那里出现了几个问题,

  1. 如果您使用 swift2 进行单元测试并使用 @testable import {module} 包含您的主要应用程序模块,当您从该测试用例调用 XCUI* menthods 时,swift 会抛出错误

Module {module} was not compiled for testing

由于 UI 测试 运行 作为单独的进程,它无法加载您的应用程序代码依赖项。

  1. 由于 XCUI* api 依赖于 Obj-C 库,调用 UI 测试方法会期望您在单元测试中包含 Objective-C 桥接头文件目标。它不会出错,但会污染你的目标。
  2. 我还确认您需要将测试用例文件添加到 UI 测试目标,以便启用 UI 测试记录按钮。

运行将 UI 测试作为单独的目标还有其他好处,例如可以灵活地将目标指定为仅 运行 单元测试或 UI 来自命令行工具和易于维护 UI 测试执行的干净状态。