【发布时间】:2015-10-30 17:29:28
【问题描述】:
我正在尝试使用 Xcode 7 将 UI 测试添加到我现有的项目中。但是 UI 测试记录按钮始终是灰色的。我在这里缺少什么?
我尝试重新启动 Xcode、清理和重建项目并添加新的 UI 测试目标。有没有其他人经历过同样的行为?
【问题讨论】:
标签: ios iphone xcode xcode7 xcode-ui-testing
我正在尝试使用 Xcode 7 将 UI 测试添加到我现有的项目中。但是 UI 测试记录按钮始终是灰色的。我在这里缺少什么?
我尝试重新启动 Xcode、清理和重建项目并添加新的 UI 测试目标。有没有其他人经历过同样的行为?
【问题讨论】:
标签: ios iphone xcode xcode7 xcode-ui-testing
FWIW:我遇到了这个问题,结果我试图在错误的操作系统中运行模拟器。
我尝试使用 iOS 8,而 UITesting 仅适用于 iOS 9+。
切换模拟器版本,出现录制按钮。
【讨论】:
当我创建一个 UITest 目标时,没有同时创建一个新方案。因此,我必须使用我创建的测试目标创建一个新方案。这启用了录制按钮。
【讨论】:
当我切换到正确的方案时,它立即恢复了。确保您使用 UI testing 方案,因为 UI 测试记录器无法在任何其他方案上工作。
【讨论】:
听起来很傻,我不得不从左侧边栏中选择另一个文件,然后带着测试用例返回我的文件。之后,该按钮立即变为活动状态。
【讨论】:
在 Xcode 8.3 上遇到了同样的问题。
我已经删除了tearDown 方法
override func tearDown() {
super.tearDown()
}
因为不需要使用它。一旦我将它添加回来,记录按钮就被启用了。
【讨论】:
确保每个文件只有一个XCTestCase 的子类。您希望文件名和类名匹配。
根据我的经验,即使您有 UI 测试工作,如果您在同一个文件中添加工作 XCTestCase 子类的新子类,记录按钮将被禁用(尽管所有其他测试 UI 将继续工作)。
【讨论】:
我遇到了同样的问题,我的设置是正确的,iOS >= 9.0,添加了目标。
问题是 Xcode 索引需要一段时间(大约 1 小时),索引完成后,录制按钮变为活动状态。
【讨论】:
我找到了另一种未在此处列出的解决方案。
如果您要继承 XCTestCase,请将您的类更改为再次继承,保存文件,将其更改回您的子类名称。无需清理或构建。
对于我的项目,我有一个XCTestCase 的子类,我们称之为APPMyTestCase。我经常发现记录按钮是灰色的,有时每个测试方法旁边的绿色/红色小按钮似乎也不能单独运行它们。如果我将我的子类更改回XCTestCase 一秒钟,一切都会再次运行。
改变这个:
class APPLoadingPageUITests: APPMyTestCase {
// tests here
}
到这里:
class APPLoadingPageUITests: XCTestCase {
// tests here
}
然后回到这个:
class APPLoadingPageUITests: APPMyTestCase {
// tests here
}
这为我解决了问题。
【讨论】:
对我来说,问题在于“版本编辑器”窗格已打开。一旦我切换回助理编辑器,它就起作用了。
【讨论】:
我做了一些事情来启用我的录制按钮:
另外,请确保您的构建/运行目标设置为 iPhone X 9.X。
【讨论】:
这有点傻,但在我阅读的一些文章中漏掉了。
确保你有一个 UITesting 目标,一个常规的测试目标没有为我做。
【讨论】:
您应该导入要测试的视图类。然后将光标放在测试方法上。
【讨论】:
我也被这个问题困住了一段时间。为了记录,您必须在 Xcode 识别为包含测试的类中。将文件添加到您的 UI 测试目标中,例如:
import Foundation
import XCTest
class MyTests: XCTestCase {
func testSomething() {
}
}
保存文件,清理您的项目,然后切换到另一个文件,然后再回到这个文件。录制按钮应该可用。
【讨论】: