逻辑测试正在运行,但现在不再,但Xcode表示已成功运行

时间:2012-01-19 23:51:29

标签: xcode

我有几个逻辑测试文件,我已经成功运行,然后在最后半小时,我从测试模板创建了一个新的标题/源,并添加了一个新的测试用例。

但是现在我的测试完全没有 - 如果我在其中放置了断点,那么它们就不会被击中(这是任何和所有测试,包括几分钟前的测试都在运行)。我添加了一个STAssertTrue(NO)行来确认它们没有运行而它们不是。

然而,XCode首先闪现一条消息,说它正在运行测试,然后会出现一条消息,说明已完成测试。

为什么它会突然停止工作,为什么XCode撒谎并说测试已经运行时却没有?为什么它认为它们已经运行但它们没有?

我可以看到测试文件仍然存在于测试目标的编译源中。

Xcode版本= 4.2.1

TIA

1 个答案:

答案 0 :(得分:0)

我在XCode版本4.3.2(4E2002)中观察到了相同的行为。我创建了使用主目标(AppName)文件的逻辑测试。但这些测试从未运行过。我花了很多时间在各种东西上闲逛而没有任何进展。我终于看了Apple's sample unit test project来弄清楚他们是如何设置逻辑测试的。逻辑测试来自库目标的测试文件,而不是应用程序目标。该模型被封装到一个库中,然后与主目标和逻辑测试目标链接。应用程序目标仅包含视图和控制器。这听起来像是对我的合理分离。

基于这个模型,我就是为了让我的逻辑测试正常工作。创建一个新目标(Cocoa Touch Static Library)并将所有要进行逻辑测试的文件(通常是所有模型)移动到这个新目标。在“Build Phases”设置下,在应用程序目标和逻辑测试目标的“Link Binary With Libraries”中添加此新库。

我可以想象这些说明有点令人困惑。如果您剖析上面提到的示例项目,您将会有更好的想法。