Xcode 5说testing失败,但显示绿色的选中标记

我已经在Xcode 5的新XCTest框架中写了几个unit testing。

testing似乎大部分时间顺利通过,但我遇到了一个奇怪的行为,如果我连续运行testing足够多的时间,最终我会得到一个“testing失败”的消息,控制台将显示Program ended with exit code 0 ,但在所有testing旁边都有绿色的复选标记。

这里怎么了?

在bug修复之前,closures项目并重新打开。

build立清洁为我工作…有时反正。 产品 – >清洁。

如果你看看输出控制台,你应该注意到Xcode开始运行testing套件:

 Test Suite 'SomeClassTests' started at 2013-11-30 23:19:34 +0000 

但突然退出而不运行testing用例:

 Program ended with exit code: 0 

并显示testing失败的通知。

重新启动Xcode只会在问题快速恢复时暂时提供帮助。

我停止在Xcode中执行testing,并使用xctool通过命令行运行所有testing。

对于我来说,我认为这个问题与不正确的OCMockconfiguration有关。 完全删除OCMock并完全按照OCMock的build议重新添加到项目中似乎已经修复了它。

一些具体的事情我做错了:

  1. 我正在使用#import "OCMock.h而不是#import "OCMock/OCMock.h 。 Xcode自动完成前者。
  2. 我以前试图用不同的目录结构来安装OCMock,在库searchpath中存在一个不好的链接。
  3. 这是愚蠢的,但在试图debugging这个问题,我在我的设置方法中注释了我的OCMockObject的实例化,并不记得取消它的注释。 零的OCMockObject引起了类似的行为,如其他答案中所述。 这是奇怪的..在我目前的项目中,我有两个testing,使用在我的设置实例化的OCMockObject。 两者都应该失败。 然而,其中一个过去了,我能看到的唯一的区别就是先前经过的那个合法地通过了…

无论如何,与OCMock安装正确我的testing工作,因为他们应该

刚刚在我自己更新的XCode 5中遇到这个问题,我以为我会分享我的类似决议。

我注意到,如果我在运行testing时遇到任何断点,只是将其报告为传递,那么对于运行整个套件来说确实是非常奇怪的,而且是不可接受的。

我也注意到,像有人提到的那样join一个usleep,以及在运行testing之前做一个干净的构build似乎解决了这个问题。 然而,创build一个新的testing通常会重新引入这个问题,至less对于这个新的testing来说。 希望苹果很快就能修复这个问题

这似乎已经在XCode 5.1.1中修复

这个错误已经在Xcode 5.1中得到纠正:

Xcode 5.1发行说明

笔记特别提到:

testing目标[testing名称]遇到错误(testing过程用代码-1退出)

尝试通过退出并重新启动模拟器来恢复。 (15929053)

尽pipe我正在使用的testing是逻辑testing,Xcode希望iPhone模拟器正在运行。 一旦在试图让testing再次工作的痛苦,我已经从它的菜单重置iPhone模拟器的内容和设置,这有助于。