无法将单元测试添加到现有 iOS 项目

Posted

技术标签:

【中文标题】无法将单元测试添加到现有 iOS 项目【英文标题】:Can't add Unit Tests to existing iOS project 【发布时间】:2015-08-03 19:12:20 【问题描述】:

我试图将单元测试添加到已经运行的 ios 应用程序中。我已经搜索并阅读了许多解决此问题的线程,并逐步遵循了他们的建议,但我似乎陷入了不同的地方。

该应用程序是一个普通的 iPhone 应用程序,我目前正在使用 Xcode 6.3.1 进行开发,我已经能够为我的应用程序创建“Cocoa Touch 测试包”。创建了一个基本测试,但是当我按下“测试”按钮时,我收到了消息

配置“项目测试”进行测试。

“项目测试”方案未配置用于测试。编辑方案以启用测试,或取消操作。

我按下“编辑方案”按钮并进入编辑方案编辑器。但是在那个窗口中(你可以在这个解释下面看到一个快照)我永远无法选择任何目标,所有的选项实际上都是灰色的!我已经尝试了所有方法,但我不确定我应该在我的项目中进行哪些更改才能更改此内容并成功创建单元测试...请问有什么想法吗?

【问题讨论】:

您使用的是哪个版本的 Xcode?​​span> 你能展示你的目标和计划吗? 【参考方案1】:

这是我在演示项目中添加单元测试的过程。首先,我从项目中删除了测试方案,看起来像这样

然后我点击位于下角的加号图标,然后在其他的 ios 部分下我选择了 Cocoa Touch Testing Bundle 像这样

然后我选择了语言、项目和目标,就像我在这样的项目中使用的那样

在我的项目中添加测试方案后,我去编辑方案并像这样从那里选择测试

然后我选择了加号按钮,像这样将新创建的测试方案添加到我的项目中

从那里我选择了方案并在下面的屏幕截图中看到,该方案已添加到我的项目中

然后选择测试应用程序并在下面的屏幕截图中看到我能够测试我的应用程序

尝试这样做。希望对您有所帮助。

【讨论】:

您好 Rajatp,感谢您的帮助!我正在执行您提到的步骤,但是我陷入了您说“然后我选择了加号按钮以像这样将新创建的测试方案添加到我的项目中”的步骤中。由于某种原因,我无法选择新创建的测试方案。它出现在那里,但我不能选择它! 你好,Ignacio Oroná,你能给我那个屏幕的截图吗? 嗨 Rajatp,截图与我在原始问题中添加的截图相同。我的屏幕截图将与您轻轻上传的第五个屏幕相匹配。但就我而言,我无法选择任何东西!提前谢谢 我认为您在目标中弄乱了一些东西。您是否在删除之前添加的测试设置后尝试过。【参考方案2】:

我认为您的问题是您为测试包创建了一个新方案。尝试转到您用于运行应用程序的方案并选择“编辑方案”。单击“测试”,然后单击左下角的加号。然后,您应该能够在那里选择您的测试包。现在,当您按下应用方案上的“测试”按钮时,它应该会运行测试包。

从您上面的屏幕截图看来,您有一个用于测试包的方案,但事实并非如此。如果您确实有测试包的方案,您应该删除它并从头开始。我创建了一个只有“测试”方案的新项目,以仅使用一个方案来制作示例。

从项目导航器中单击您的项目,单击右下角的加号以添加新的测试包。

确保要测试的目标是你的项目,否则,我认为你最终可能会遇到上述情况。

现在,当您选择用于运行应用的方案时,您应该会在“测试”部分下看到新的测试包。

【讨论】:

嗨@jhildensperger 尝试了您提到的内容,但结果完全相同。我使用相同的 2 个选项“proj”和 OHAttributedLabel 进入添加到原始问题的同一屏幕,但它们都不是灰色的,并且不可选择... 我添加了更多的演练,希望对您有所帮助。如果没有,您可以在 github 上链接到您的项目,我会更有帮助。 哪一步失败了?

以上是关于无法将单元测试添加到现有 iOS 项目的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio导入现有单元测试“无法找到仪器信息”

单元测试能否成功添加到现有的生产项目中?如果是这样,如何以及是不是值得?

将 OCUnit 测试框架添加到现有 Xcode 项目时遇到问题

Xcode 4:为啥我不能将头文件添加到单元测试目标?

在 Xcode ui 测试 Swift 中查找表格单元格

无法在单元测试项目中的 Swift 中读取 JSON 文件