44

我在 Xcode 5 的新 XCTest 框架中编写了一些单元测试。

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

这里出了什么问题?

4

9 回答 9

17

这绝对是一个错误。通过https://bugreport.apple.com/提交报告,请随时参考我的报告 (15251050)。

于 2013-10-17T14:38:56.263 回答
2

Build Clean 对我有用......有时无论如何。产品 -> 清洁。

于 2014-01-28T23:08:34.307 回答
2

在修复错误之前,关闭项目并重新打开它。

于 2013-11-14T03:21:10.893 回答
1

如果您查看输出控制台,您应该注意到 Xcode 开始运行测试套件:

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

但在没有运行测试用例的情况下突然退出:

Program ended with exit code: 0

并显示测试失败的通知。

重新启动 Xcode 只会暂时帮助问题,因为问题很快就会出现。

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

于 2013-11-30T23:35:27.767 回答
1

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

我做错了几件事:

  1. 我正在使用#import "OCMock.h而不是#import "OCMock/OCMock.h. Xcode 自动完成了前者。
  2. 我以前尝试使用不同的目录结构安装 OCMock,在库搜索路径中留下了一个错误的链接。
  3. 这很愚蠢,但在尝试调试这个问题时,我在我的设置方法中注释掉了我的 OCMockObject 的实例化......并且不记得取消注释它。nil OCMockObject 导致与此处其他答案中描述的类似行为。这很奇怪。在我当前的项目中,我有两个使用在我的设置中实例化的 OCMockObject 的测试。两者都应该失败。但是,其中一个通过了,我可以看到两者之间的唯一区别是,之前通过的那个是合法的...

无论如何,通过正确设置 OCMock,我的测试可以正常工作

于 2014-02-28T23:26:17.153 回答
0

此错误已在 Xcode 5.1 中得到纠正:

Xcode 5.1 发行说明

注释特别提到:

测试目标 [测试名称] 遇到错误(测试进程以代码 -1 退出)

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

于 2014-05-13T17:46:14.063 回答
0

这似乎已在XCode 5.1.1中修复

于 2014-04-22T00:33:35.450 回答
0

尽管我使用的测试是逻辑测试,但 Xcode 希望 iPhone 模拟器能够运行。一旦在试图让测试再次工作的痛苦中,我已经从它的菜单中重置了 iPhone 模拟器的内容和设置,这很有帮助。

于 2014-05-29T04:15:27.803 回答
0

刚刚在我自己更新的 XCode 5 中遇到了这个问题,我想我会分享我类似的解决方案。

我注意到如果我在运行测试时遇到任何断点并继续它报告为通过,确实非常奇怪并且对于运行整个套件是不可接受的......

我还注意到有人提到添加了一个睡眠,以及在运行测试之前进行干净的构建似乎可以解决这个问题。但是,创建新测试通常会重新引入问题,至少对于该新测试而言。希望苹果尽快解决这个问题!

于 2014-03-15T00:12:21.353 回答