在 Xcode UI 测试目标中禁用了录制按钮

Record button disabled in Xcode UI Test Target

我知道已经发布了类似的问题,但根据我的调查,还没有发布解决方案,至少没有一个有效的解决方案。我仅通过 Swift 和 Obj-C 中的示例项目成功地 运行 UI 进行了测试。

我正在尝试(未成功)将 UI 测试集成到现有的 Xcode Obj-C 项目中,这似乎完全是另一个问题。以下是我采取的步骤:

  1. 在我的项目中创建了一个新的UI测试目标
  2. 确保 'Enable Testability' 已针对我正在测试的目标设置为 YES
  3. 清理、清理构建文件夹、重建应用程序、重新启动 Xcode 以及我能想到的所有其他内容。

当我这样做时,测试目标可用但记录按钮变灰(禁用)并且装订线中没有播放按钮来执行测试。测试 class 没有任何视觉表明它是测试 class。当我将光标放在测试方法中时,记录按钮保持禁用状态。

有什么我遗漏的吗?还有什么要检查的,可能会阻止 UI 测试?

确保您可以成功构建测试目标。

进入Product > Test,确保UITesting测试用例为运行(测试用例为空即可) .您还应该在测试导航器下或应用程序目标方案中看到测试用例。

确保您位于正确的 XCTestCase 子类文件中。

研究了一段时间,我发现我一直在一个扩展文件中(我一直在扩展文件中排序流程)。因此,当我打开主 XCTestCase 子类文件(如 "YourAppUItests")时,记录测试按钮已启用。

确保您的 ui 测试 class 中至少有一个测试函数。例如 - func testExample(){}。然后你就可以在那个函数中记录,因为你只能 运行 函数作为测试,如果它们有测试作为前缀。

  1. 录制按钮只能在函数体内启用。

  2. 函数名必须以test开头。喜欢testExample().

  3. 更改函数名称后,等待几秒钟 运行 图标出现在装订线中。

现在应该会出现录制按钮。

我意识到您必须将光标放在要为其录制的测试函数内。我只是在测试功能中单击并启用了记录按钮。

  1. 在 yourfileUITests.swift
  2. 中创建函数

  1. 运行 测试程序

  1. 你的功能可以录制UI测试中,按钮已经启用

此外,请确保您 select UI 测试方案,这是我的问题所在:

  1. 单击左窗格顶部的第 6 个按钮 - 显示测试导航器
  2. 右键单击 UI 测试,然后单击 "Enable ... "

然后就可以录制了

如果您的项目有测试计划 (.xctestplan),请确保启用新测试。到那时,录制按钮将被禁用。当您添加新的 UI 测试用例 Class 时,通常会发生这种情况。或者当您将新测试添加到现有 class 时,其中一些测试被禁用。