Xcode 6.1 直到运行时才检测单元测试

Posted

技术标签:

【中文标题】Xcode 6.1 直到运行时才检测单元测试【英文标题】:Xcode 6.1 not detecting unit tests until runtime 【发布时间】:2014-12-17 17:06:16 【问题描述】:

我遇到了 Xcode 6.1.1 未检测到单元测试文件的问题。我运行了与之关联的方案,并在运行时找到了该文件,并在单元测试导航器中的旁边出现了一个“rT”图标。这让我找到了this question,但没有一个答案对我有用。删除我的派生数据或重新启动 Xcode 都无济于事。唯一接近工作的是在 Xcode 运行时删除我的派生数据文件夹——当它重新索引时,它发现了我的三个方案之一中的所有测试文件。

所有这些测试都是在过去检测到的——我认为这一切都在重新索引期间被破坏了。

有没有人看到这个并找到了解决方案?我希望在运行前检测到我的测试,以便我可以轻松地单独运行它们。

【问题讨论】:

在 Xcode 运行时反复删除派生数据方法有帮助。似乎不是一个可靠的解决方案... 【参考方案1】:

我也遇到过这种情况,但删除派生数据对我有用:

    关闭 Xcode 终端:cd ~/Library/Developer/Xcode/DerivedData/ 终端:rm -Rf * 打开 Xcode 并等待它重新索引项目。

但是,您已表示这并不完全适合您。或许您也应该尝试删除 Xcode 缓存目录?

    关闭 Xcode 终端:cd ~/Library/Caches/com.apple.dt.Xcode/ 终端:rm -Rf * 打开 Xcode 并等待它重新索引项目。

【讨论】:

不错的主意!我会看看我是否能回到这种状态并试一试。 希望它对您有用 - 最后的选择是从您的计算机中完全删除 Xcode,然后重新安装。 :( 这在 Xcode 7.0.1 中似乎仍然是一个可行的解决方案。【参考方案2】:

这也发生在我的 Xcode 7.2 上。 我执行了以下步骤来解决这个问题:

    我通过选择 Window -> Project -> 单击 Derived Data 路径旁边的箭头并删除文件夹中的所有文件来删除了 Derived Data。 退出并重新启动 Xcode。

索引文件需要一些时间,然后所有测试都出现在测试导航器下。

【讨论】:

【参考方案3】:

我在 6.1.1 中也有同样的问题。

我发现的一种解决方法是创建一个新的测试目标。当测试用例消失时,在导航器中选择它并将其移出原始测试目标,移入新目标,然后再次返回(可能在将其移回之前暂停 - 虽然不确定这是否真的有必要)。并不总是有效,但似乎经常触发 XCode 记住测试用例 - 如果它第一次失败,通常会重复。

我也会尝试删除派生数据 - 请注意,这可以在 Xcode 中完成(窗口/管理器/项目 - 在派生数据旁边按 Delete) - 可能更快,但可能仍然需要重新启动 - 需要一些更多实验。

阿里

【讨论】:

甚至更简单,在右侧面板中为有问题的文件取消选择测试目标,等待几秒钟,然后再次选择它。唯一对我有用的东西,不需要删除文件夹或重新启动 XCode。 @aledalgrande 其实好久没看到这个问题了——Xcode 6.3.2 改进了很多。 我在这个线程中是因为我今天遇到了这个问题,使用 XCode 6.3.2 :) @aledalgrande 啊,不一致的错误 - 我的最爱 ;)

以上是关于Xcode 6.1 直到运行时才检测单元测试的主要内容,如果未能解决你的问题,请参考以下文章

单元测试基本框架和8个测试方面

xcode用例覆盖度检测

Java 单元测试及JUnit的使用

如何使用 Xcode 4 运行单元测试的子集

Xcode 4.2,无法运行单元测试

使用命令行的 Xcode 4 单元测试