我看到有人张贴有关这这里和其他地方,但我还没有发现任何工作的解决方案。 我使用的XCode 4.4,并有一堆的设置单元测试。 我之前已经跑他们都在这个项目上,所以我知道,他们通过/时,他们应该,如果他们居然跑失败。
我对15的测试套件,而且每一个包含1-7测试。 在大多数的尝试,所有的测试套件的结束(和通过)除1(FooTests)。 它给出了警告:
FooTests did not finish
testFoo did not finish
的XCode将报告测试是成功的,无论在未完成的测试中发生了什么。 还有一点要注意,有时它是一个不同的测试将无法完成,有时多套房将无法完成。 我没有注意到,所有的测试做完成的情况下,但这个看似随意的行为来看,我相信这是可能的。
所以,这是在XCode中的错误吗? 我想不到的是随机测试没有完成,然后导致的XCode报告,一切成功的任何其他原因。 是否有任何解决方案?
我在的XCode 4.5.2。 对于应用程序的单元测试,如果测试套件完成这么快,主要的应用程序不正确之前加载,你会得到警告。 您只需在您的测试像下面的末尾添加睡眠避免此问题。 它不发生的逻辑单元测试。
[NSThread sleepForTimeInterval:1.0];
我只是有这个问题XC4.5DP4。
我做了一个测试,确实在一个循环中一些工作,没有别的,当它落在圈外,而我得到了“未完成”的错误。
在试图证明测试完成,我说这是最后一行:
NSLog(@"done");
不仅“做”得打印到输出 - 现在Xcode中说,测试已经完成。
似乎是一个解决办法......去的身影。
我使用XCode46-DP3和我刚刚解决了我的测试这个问题。 我有几个测试,启动Web服务器,然后执行HTTP调用它; 在测试结束时,Web服务器停止。 在上周这些测试已经开始有警告“没有完成”。 对我来说已经足够,在这些测试的结尾处添加以下睡眠(正是我在拆机添加):
- (void)tearDown {
[self.httpServer stop];
[NSThread sleepForTimeInterval:1.0];
self.httpServer = nil;
self.urlComposer = nil;
}
这个问题似乎是你的测试结束得太快了Xcode的接收并解析指示失败或成功的日志信息。 睡在最后的测试情况来看1秒可靠地为我工作,其中0.0没有。 要查看哪些测试用例是最后的测试情况,检查计划对话框中的测试动作。
我创建了一个单独WorkaroundForTestsFinishingTooFast测试情况下,具有一个单一的方法:
- (void)testThatMakesSureWeDontFinishTooFast
{
[NSThread sleepForTimeInterval:1.0];
}
问题是,当您添加更多的测试用例,你必须保证这个试验是最后的方法运行。 这意味着添加或者删除从测试动作这个类作为测试用例重新排序是不允许的。 在另一方面,你只有1秒延迟整个测试包。
我曾在日志导航器同样的警告。 我固定它适合我。
在项目中,我得到了2个方案,一个用于运行项目,一个用于单元测试。
- 转到产品 - >编辑计划...
- 在方案选择器选择的单元测试计划
- 选择左侧的“测试” -icon
- 从LLDB调试器更改为GDB,然后按OK
- 测试现在应该完成。 (对我来说,工作得很好)
对我来说,解决办法是瘦下来从应用程序的这些测试被测试部分的输出记录。 我觉得xcode的无法解析,因为其他输出我整个应用程序的时间测试输出。
我曾与的XCode 4.6,其原因运行同样的问题,在我的情况,是该计划,并在测试服的实际单元测试之间的不一致。 在该方案中我有一些衣服选中,但在他们的.m文件一些单元测试了评论。
为了解决这个问题:要么取消对测试或取消该计划的文件/西装和所有应再次成为绿色:)
对于像我忘了怎么达到计划这些都是必要的步骤:
- 右键点击项目名称在方案部分(从右到停止按钮)
- 选择编辑方案
- 选择测试调试
- 点击三角形单元测试项目旁边,毗邻每个文件你有一个复选框
- 您放置单元测试中取消选中注释文件
希望这可以帮助