Xcode 7 UI测试,录制按钮显示为灰色

时间:2015-08-07 09:54:15

标签: ios iphone xcode xcode7 xcode-ui-testing

我正在尝试使用Xcode 7将UI测试添加到现有项目中。但是,UI测试记录按钮始终是灰色的。我在这里缺少什么?

我尝试重新启动Xcode,清理并重建项目并添加新的UI测试目标。有没有其他人经历过同样的行为?

16 个答案:

答案 0 :(得分:34)

要启用红色按钮,您必须将光标放在测试方法上:

enter image description here

答案 1 :(得分:15)

我也被困在这一段时间了。为了记录,您必须在Xcode识别为包含测试的类中。使用以下内容将文件添加到UI测试目标:

import Foundation
import XCTest

class MyTests: XCTestCase {
    func testSomething() {

    }
}

保存文件,清理项目,然后切换到另一个文件,然后返回到此文件。然后应该有记录按钮。

答案 2 :(得分:12)

FWIW:我遇到了这个问题,事实证明我试图在错误的操作系统中运行模拟器。

我试图使用iOS8.x,而UITesting仅适用于iOS9 +。

切换模拟器版本,出现录制按钮。

答案 3 :(得分:12)

我遇到了同样的问题,我的设置正确,iOS> = 9.0,已添加目标。

问题是Xcode索引需要一段时间(约1小时),索引完成后,录制按钮变为活动状态。

答案 4 :(得分:5)

在Xcode 8.3上有同样的问题。

我删除了tearDown方法

   override func tearDown() {
        super.tearDown()

    }

因为没有必要使用它。一旦我添加回来,记录按钮就被启用了。

答案 5 :(得分:4)

对我来说,问题是"版本编辑器"窗格是开放的。一旦我切换回助理编辑器,就可以了。

答案 6 :(得分:3)

这有点愚蠢,但在我读过的一些文章中错过了。

确保你有一个UITesting目标,一个常规测试目标没有为我做。

答案 7 :(得分:3)

测试方法必须从单词{u'date': u'2015-02-08', u'by': u'abc@gg.com', u'value': u'NA'} {u'date': u'2016-02-08', u'by': u'dfg@yaa.com', u'value': u'applicable'} {u'date': u'2017-02-08', u'by': u'wrwe@hot.com', u'value': u'ufc'} 开始,以便Xcode识别它并允许在光标位于方法内时进行记录。

Xcode识别该方法的一个迹象是出现在方法名称左边的菱形:

enter image description here

答案 8 :(得分:2)

检查您的版本编辑器并对其进行纠正

enter image description here

enter image description here

答案 9 :(得分:1)

我做了一些事情来启用我的录音按钮:

  1. (可选,推荐) - 删除项目的所有TEST方案和TEST目标,通过创建新的UITest Target重新开始。
  2. 确保您的UITest方案和主项目运行方案指向同一目标。
  3. 尝试删除其他UITest方案,如果它们可以轻松重建/不是绝对重要的。
  4. 产品> (按住ALT键)>清理构建文件夹
  5. 产品>清洁(仅用于安全措施)
  6. 关闭项目,退出Xcode。
  7. 退出模拟器。
  8. 最后,重新打开Xcode,加载你的项目。导航到您的UITest文件,欢乐的小红色按钮可供使用。
  9. 此外,请确保您的构建/运行目标设置为iPhone X 9.X。

答案 10 :(得分:1)

我找到了另一个我未在此处列出的解决方案。

如果您是XCTestCase的子类,请将您的类重新继承,保存文件,将其更改回您的子类名称。不需要清洁或建造。

对于我的项目,我有一个XCTestCase的低位,让我们称之为APPMyTestCase。我经常发现记录按钮是灰色的,有时每个测试方法旁边的绿色/红色小按钮都不能单独运行它们。如果我将我的子类更改回XCTestCase一秒钟,那么一切都会再次起作用。

改变这个:

class APPLoadingPageUITests: APPMyTestCase {
    // tests here
}

对此:

class APPLoadingPageUITests: XCTestCase {
    // tests here
}

然后回到这个:

class APPLoadingPageUITests: APPMyTestCase {
    // tests here
}

这为我解决了。

答案 11 :(得分:1)

听起来很傻,我必须从左侧边栏中选择另一个文件,然后使用测试用例返回我的文件。之后,按钮立即生效。

答案 12 :(得分:0)

确保每个文件只有一个XCTestCase的子类。您希望文件名和类名匹配。

根据我的经验,即使你有UI测试工作,如果你在同一个文件中添加工作XCTestCase子类的新子类,记录按钮将被禁用(尽管所有其他测试用户界面将继续工作)。 / p>

答案 13 :(得分:0)

当我切换到正确的方案时,它立即回来了。确保您使用UI testing方案,因为UI测试记录器无法在任何其他方案上运行。

答案 14 :(得分:0)

当我创建一个UITest目标时,没有同时创建一个新的方案。因此,我必须使用已创建的测试目标来创建新方案。这启用了记录按钮。

答案 15 :(得分:-2)

您应该导入要测试的View类。然后将光标放在测试方法中。