删除的测试在Xcode测试导航器中持续存在

时间:2016-04-19 21:10:20

标签: xcode unit-testing

我最近从项目中删除了一些旧的测试类并删除了文件。正如预期的那样,文件被移动到垃圾箱并显示为在git中删除。

不幸的是,测试类和它们定义的测试用例继续出现在测试导航器中。我已经尝试了像清洁和放大器这样的常见嫌疑人。重建,戒烟&重新打开Xcode。

剩下的测试运行得很好;在全部测试运行结束时,导航器显示没有指示状态的幻像测试。

Un-run phantom test cases

我已经开始认为项目文件中有一些错误的状态可以保留这些幻像测试用例,但我对内部进行了进一步调试的了解不够。< / p>

我的问题与描述here的情况不同,因为我的所有测试用例都在测试导航器中,而不是全部消失。

2 个答案:

答案 0 :(得分:5)

删除DerivedData目录。显然Xcode会解析测试类并将某种类型的测试定义文件写入DerivedData。然后,它使用这些定义文件填充测试导航器。

不幸的是,从Xcode中删除测试类不会导致该缓存失效和重建。相反,必须手动清除缓存。

我错误地认为测试定义存储在内存中,这就是我期望退出Xcode解决问题的原因。

答案 1 :(得分:1)

我发现我必须按顺序执行以下步骤,否则删除的测试会重新出现:

  1. 关闭项目(但不要退出Xcode)。
  2. 窗口&gt;项目&gt;选择项目。
  3. 点击&#34;删除&#34; &#34;派生数据旁边的按钮&#34;。
  4. 退出Xcode并重新启动。
  5. 等待Xcode完成索引。
  6. 运行测试。