我在Xcode 5的新XCTest框架中编写了一些单元测试。
测试似乎大部分时间都成功通过,但我遇到了一个奇怪的行为,如果我连续运行测试足够多次,最终我会得到一个'测试失败'消息,控制台将显示{ {1}},但所有测试旁边都有绿色复选标记。
这里出了什么问题?
答案 0 :(得分:17)
这绝对是个错误。通过https://bugreport.apple.com/提交报告随时参考我的报告(15251050)。
答案 1 :(得分:2)
在修复错误之前,关闭项目并重新打开它。
答案 2 :(得分:2)
Build Clean为我工作......有时无论如何。产品 - >干净。
答案 3 :(得分:1)
如果查看输出控制台,您应该注意到Xcode开始运行测试套件:
Test Suite 'SomeClassTests' started at 2013-11-30 23:19:34 +0000
但是在没有运行测试用例的情况下突然退出:
Program ended with exit code: 0
并显示测试失败的通知。
重新启动Xcode只会暂时有效,因为问题很快就会出现。
我停止在Xcode中执行测试,并使用 xctool 通过命令行运行所有测试。
答案 4 :(得分:1)
对我来说,我认为这个问题与错误的OCMock配置有关。删除OCMock(完全)并将其重新添加到项目正好 recommended by OCMock似乎修复了它。
我做错了几件具体的事情:
#import "OCMock.h
代替#import "OCMock/OCMock.h
。 Xcode自动完成了前者。无论如何,在正确设置OCMock的情况下,我的测试正常运行
答案 5 :(得分:0)
刚刚在我自己更新的XCode 5中遇到这个问题,我想我会分享我的类似解决方案。
我注意到,如果我在运行测试时遇到任何断点,只需继续报告即可通过,非常奇怪且无法接受运行整个套件......
我还注意到,正如有人提到的那样添加一个usleep,以及在运行测试之前进行干净的构建似乎可以解决问题。但是,创建新测试通常至少会针对该新测试重新引入该问题。希望Apple尽快解决这个问题!
答案 6 :(得分:0)
这似乎已在XCode 5.1.1
中修复答案 7 :(得分:0)
此错误已在Xcode 5.1中更正:
备注特别提及:
测试目标[测试名称]遇到错误(测试过程退出,代码为-1)
通过退出并重新启动模拟器来尝试恢复。 (15929053)
答案 8 :(得分:0)
尽管我使用的测试是逻辑测试,但Xcode希望iPhone模拟器能够运行。在尝试让测试再次运行的痛苦之后,我已经从它的菜单中重置了iPhone模拟器内容和设置,这有帮助。