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



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

但现在我的测试根本没有执行——如果我在其中设置断点,就不会命中(这是所有测试,包括几分钟前正在运行的测试)。我添加了一个STAssertTrue(NO)行,以确认它们没有运行,也没有。

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

为什么它会突然停止工作,为什么XCode撒谎说测试已经运行,而现在还没有?为什么它认为他们已经跑了,但他们没有?

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

Xcode版本=4.2.1

TIA

我在XCode 4.3.2版(4E2002)中观察到了相同的行为。我创建了使用主目标(AppName)中的文件的逻辑测试。但这些测试从未运行过。我花了相当多的时间在各种各样的事情上摸索,但没有任何进展。最后,我查看了苹果的示例单元测试项目,以了解他们是如何设置逻辑测试的。逻辑测试来自库目标而不是应用程序目标的测试文件。该模型被封装到一个库中,然后与主目标和逻辑测试目标链接。应用程序目标仅包含视图和控制器。对我来说,这听起来是一个合理的分离。

基于这个模型,这就是我为使逻辑测试正确工作所做的。创建一个新目标(Cocoa Touch静态库),并将所有要进行逻辑测试的文件(通常是所有模型)移动到此新目标。在"构建阶段"设置下,将此新库添加到应用程序目标和逻辑测试目标的"将二进制与库链接"中。

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

最新更新