Xcode不再识别测试。

7

我已经花了几天时间进行故障排除,但是现在完全没有头绪。

我之前一直在使用Xcode中的单元测试,效果很好。但是突然间Xcode不再识别我的测试了。如果我打开测试面板,会显示我没有任何测试。实际上,我有13个测试。

现在无法运行单独的测试或某些类。编辑器区域中的小滚动条按钮也消失了。

如果我点击测试面板中“0 Tests”右侧的按钮,仍然可以运行所有的测试。当我点击这个按钮时,Xcode开始显示所有测试,并且它们似乎仍在正常运行。但是,现在测试虽然在测试面板中显示,但它们与我在类中编写的测试没有关联。通常情况下,如果你点击一个测试,它会把你带到包含该测试的代码文件中。现在这个功能消失了。

我尝试打开另一个我保存过的旧项目,结果出现了同样的问题。但是,我新建了一个项目,它正常运行,没有任何问题。

你有什么想法吗?我在这里发现了其他类似问题的帖子,但是没有一个得到了有用的回答,而且这些帖子都至少数月前发布了。希望新建一个主题可以再次引起人们的关注。

我现在的想法是重新开始项目,并将文件复制过来。不知道还有什么别的办法。


你正在使用 Xcode 6.1.1 吗? - Leo Dabus
你尝试过删除 DerivedData 和缓存吗? - Leo Dabus
我有点失望。我将无法测试这个。一早起来就去测试,但昨晚在关闭之前进行了项目迁移,结果修复了该项目的问题。本以为能够恢复到先前的提交或者打开另一个也出现问题的项目。但不知何故,这两个问题都得到了解决。如果再次遇到此问题,我肯定会尝试这个方法。希望如果其他人也遇到此问题,他们也会尝试您的建议并留下反馈。再次感谢您的帮助。 - Mathieson
这个回答解决了你的问题吗?XCTest没有将新方法注册为测试 - pkamb
不,那并没有回答这个问题。所有的方法前缀都是“test.”。 - Mathieson
显示剩余4条评论
3个回答

13

我也遇到了同样的问题,而且我的所有方法都有测试前缀。

所以,问题出在Xcode索引上,因为一些目标可以看到所有的测试,而有些则不能。要创建一个新的索引,请按照以下步骤操作:

  1. 退出 Xcode
  2. 转到 ~/Library/Developer/Xcode/DerivedData/
  3. 删除此文件夹。你可以使用 rm -rf YourProjectDir

完成!当您打开项目时,请等待重新索引,测试应该像往常一样显示。


摇头。对我有效。啊,更多的Xcode之美!实际上,我执行了rm -rf *。 - Chris Prince
2
我讨厌XCode,它占用了10GB的空间,而且充满了bug。 - Shivam Pokhriyal

11

所有测试方法都以“test”开头:

func testValidateStudent()
{
    // your code
}

请确保您的测试方法以“test”开头。


2
测试标记似乎取决于当前方案以及测试是否与该方案匹配。
(我在Xcode 11中进行了测试,不确定最初提问时的时间。在我的情况下,我必须清除派生数据才能使测试标记再次出现,并注意到方案依赖性。当我向两个不同的测试目标添加具有相同名称的测试时,可能会触发问题。)
请参见下面的截屏,其中包含iOS和tvOS目标的项目。例如,iOS目标的测试(在截图左侧)只有在选择iOS目标/方案时才会被标记。在这种情况下,tvOS测试(在截图右侧)将不显示标记。切换方案(左上角的红色标记)将隐藏左侧文件中的iOS测试标记,并显示右侧文件中的tvOS测试标记。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接