【问题标题】:Xcode 7 UI Tests, Recording button is greyed outXcode 7 UI 测试,录制按钮显示为灰色
【发布时间】:2015-10-30 17:29:28
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    我尝试使用 iOS 8,而 UITesting 仅适用于 iOS 9+。

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

    【讨论】:

    • Apple 问题的解决方案......简直太棒了!
    • 测试函数需要以“test”开头,并且里面至少要有注释行。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      检查您的版本编辑器并更正它

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 非常感谢
        • 谢谢!实际上,我必须创建一个新方案,因为当我创建一个新的测试目标时,并没有自动创建一个新方案。
        【解决方案5】:

        听起来很傻,我不得不从左侧边栏中选择另一个文件,然后带着测试用例返回我的文件。之后,该按钮立即变为活动状态。

        【讨论】:

        • 是的。我猜 Xcode 需要刷新一些在选择不同文件后发生的内部状态。
        【解决方案6】:

        测试方法必须以单词 test 开头,以便 Xcode 识别它并在光标位于方法内时允许记录。

        Xcode 识别该方法的一个指示是出现在方法名称左侧的菱形:

        【讨论】:

        • 你是对的,我测试了所有这些解决方案,唯一能解决我的问题就是你的答案,谢谢
        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

          在 Xcode 8.3 上遇到了同样的问题。

          我已经删除了tearDown 方法

             override func tearDown() {
                  super.tearDown()
          
              }
          

          因为不需要使用它。一旦我将它添加回来,记录按钮就被启用了。

          【讨论】:

            【解决方案9】:

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

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

            【讨论】:

              【解决方案10】:

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

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

              【讨论】:

              • 对于新创建的 UI 测试目标,这似乎是此问题的正确答案。我的索引花费了 20 多分钟,然后按钮才可用。
              • 我通过退出 Xcode 并重新启动 Xcode 加快了这个过程。一旦它完成处理并且我更新了光标位置,记录按钮就可用了。
              • 等待索引完成修复了我的问题。
              【解决方案11】:

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

              如果您要继承 XCTestCase,请将您的类更改为再次继承,保存文件,将其更改回您的子类名称。无需清理或构建。

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

              改变这个:

              class APPLoadingPageUITests: APPMyTestCase {
                  // tests here
              }
              

              到这里:

              class APPLoadingPageUITests: XCTestCase {
                  // tests here
              }
              

              然后回到这个:

              class APPLoadingPageUITests: APPMyTestCase {
                  // tests here
              }
              

              这为我解决了问题。

              【讨论】:

                【解决方案12】:

                对我来说,问题在于“版本编辑器”窗格已打开。一旦我切换回助理编辑器,它就起作用了。

                【讨论】:

                  【解决方案13】:

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

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

                  另外,请确保您的构建/运行目标设置为 iPhone X 9.X。

                  【讨论】:

                    【解决方案14】:

                    这有点傻,但在我阅读的一些文章中漏掉了。

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

                    【讨论】:

                      【解决方案15】:

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

                      【讨论】:

                        【解决方案16】:

                        我也被这个问题困住了一段时间。为了记录,您必须在 Xcode 识别为包含测试的类中。将文件添加到您的 UI 测试目标中,例如:

                        import Foundation
                        import XCTest
                        
                        class MyTests: XCTestCase {
                            func testSomething() {
                        
                            }
                        }
                        

                        保存文件,清理您的项目,然后切换到另一个文件,然后再回到这个文件。录制按钮应该可用。

                        【讨论】:

                        • 谢谢@Maldron,我这样做了好几次,但都没有成功。不得不再次读取 UI 测试目标。感觉 UI 测试真的有问题。
                        • 有时 Xcode 会出错并且无法将测试用例识别为实际的测试用例(您也无法播放它,因为方法左侧的栏中缺少该选项声明。我主要通过交替重新启动 Xcode,断开和/或重新启动模拟器或连接的测试设备来克服它们。至少不必重新启动我的机器!
                        • 通过重新启动 Xcode 为我解决了这个问题。谢谢
                        • 我必须点击 testSomething() 函数右侧的方块。这对我有用
                        • 只是一个补充,我的 cursor 必须在我的 UITest 文件中以关键字 test 开头的函数中才能获取记录按钮显示。
                        猜你喜欢
                        • 2014-07-17
                        • 2011-07-20
                        • 2022-11-16
                        • 2015-11-20
                        • 2020-07-16
                        • 2016-04-26
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多