我在Xcode及其“Log Navigator”中遇到了一个非常偷偷摸摸的问题。
我重新创造了这样的问题;我有一个非常简单的OCUnit测试:
-(void)testSimpleFailure{
STFail(@"Please fail!");
}
我清理我的构建,构建我的测试方案,并运行我的测试。
在输出控制台窗口中,我看到我的所有测试执行,包括上面的测试。控制台显示实际运行并且失败的测试:
##teamcity[testFailed name='-|[SimpleTestClassTests.testSimpleFailure|]' message='Please fail!' details='']
然而,Xcode显示“Tests Succeeded overlay”,左侧的“Log Navigator”显示没有问题,全部都是绿色。
还有其他人有过类似的问题吗?有谁知道如何解决这个问题?
我非常希望在我承诺之前不会得到误报。
编辑澄清我的问题。
答案 0 :(得分:11)
我在设备上运行应用程序测试和单元测试。我得到了与你相同的结果 - 测试失败但Log Navigator说一切都过去了。不仅如此,我还无法在代码中设置断点。
我的解决方案是“编辑方案...”,选择“测试”方案,并将我的调试器从“LLDB”更改为“GDB”。我正在使用Xcode 4.3.2,我的编译器设置为LLVM 3.1的所有目标
将Test方案的调试器更改为GDB后,Log Navigator会报告测试失败,并且我可以在测试运行时设置断点和调试。
link:搜索“执行任何代码前单元测试崩溃”(LLDB错误)https://github.com/kstenerud/iOS-Universal-Framework
答案 1 :(得分:7)
好的,经过5天左右的大约3位开发人员在查看此问题后,我们找到了解决方案:
rm -rf Library/Application\ Support/iPhone\ Simulator
或者,或者,如果吹走整个目录树不是你的事情:
转到iOS模拟器应用程序。从顶部菜单中选择iOS模拟器,然后选择"重置内容和设置......"
显然在模拟器和Xcode之间有些东西被破坏了,所以Xcode无法挂钩到模拟器来观看测试。 Xcode认为没有测试,因此测试通过。
究竟是什么导致了这一点,我们不确定,但经过5个艰苦的日子和1个解决方案后,我们不在乎,因为我们正在前往最近的酒吧。
干杯。
答案 2 :(得分:2)
我刚读了这篇关于影响Mac应用程序的问题的长篇文章:
http://masonmark.com/the-xcode-fairy/
诀窍似乎是退出Xcode并再次打开项目。该错误是间歇性的,有时会在这里,或者永远不会在这里,它会一直处于这种状态,直到下次重新启动Xcode。
这也是一个很好的阅读。
答案 3 :(得分:0)
是的,我已经看到了这种情况,间歇性和烦人。
确保选中了最新(最新)的日志消息。
答案 4 :(得分:0)
对我有用:重置模拟器,就像Nick L in his answer PLUS关闭XCode并重新启动一样。然后每个使用STAssertTrue(false)或STFail的构建都会给我一个负面结果。
答案 5 :(得分:0)
如果您使用的是XCTest,请确保部署到iOS 7模拟器。如果部署到iOS 6,它会说构建成功,测试失败但不在调试器中提供任何日志记录信息。