单元测试期间Xcode CI bot错误(Unexpected TestSuiteWillFinish)

时间:2014-02-24 21:42:32

标签: xcode unit-testing continuous-integration sentestingkit

我们最近设置了一些带有iOS应用的Xcode bots来自动构建和测试我正在处理的应用。如果我只是构建和分析,构建过程工作正常。如果我将其设置为运行测试,则最终会出现以Unexpected TestSuiteWillFinish结尾的可变数量的错误。例如,最近一次运行显示:

  

运行测试套件TimeClockTestCase遇到错误(意外   TestCaseDidFinish)testParseResponseString遇到错误   (意外的TestSuiteWillFinish)testGetIntegrationID遇到了   错误(意外的TestSuiteWillFinish)

之前那个只有一个错误:

  

testAddChildObjectTypeTimeClockEvent遇到错误(意外   TestSuiteWillFinish)

无论显示什么错误,集成结果都会显示所有测试都已通过。如果我直接通过Xcode运行测试(而不是在服务器上运行bot),则没有错误并且传递的测试数量相同。

导致这些错误的原因是什么?如何消除它们?


这些是来自TimeClockTestCase的日志:

Test Suite 'TimeClockTestCase' started at 2014-02-23 23:11:09 +0000
2014-02-23 18:11:09.653 -0500 [TimeClockResponseCommand parseResponseString] [Line 74] W: Unsupported action number "3" in TIMECLOCK response command

Test Case '-[TimeClockTestCase testAddChildObjectTypeTimeClockEvent]' started.
Test Case '-[TimeClockTestCase testAddChildObjectTypeTimeClockEvent]' passed (0.000 seconds).
Test Case '-[TimeClockTestCase testAddChildObjectTypeTimeClockMode]' started.
Test Case '-[TimeClockTestCase testAddChildObjectTypeTimeClockMode]' passed (0.000 seconds).
Test Case '-[TimeClockTestCase testTimeclockEventColl]' started.
Test Case '-[TimeClockTestCase testTimeclockEventColl]' passed (0.000 seconds).
Test Case '-[TimeClockTestCase testTimeclockModeColl]' started.
Test Case '-[TimeClockTestCase testTimeclockModeColl]' passed (0.000 seconds).
Test Suite 'TimeClockTestCase' finished at 2014-02-23 23:11:09 +0000.

2 个答案:

答案 0 :(得分:5)

我得到了相同的随机行为。我能够确定我正在进行异步调用并对其进行测试,这是导致此随机Unexpected TestSuiteWillFinish的原因。

当我使用Kiwi时,我所做的是等待一些异步调用的结束,如此处所示(https://github.com/allending/Kiwi/wiki/Asynchronous-Testing),以进行那些特定的异步调用。

希望这有帮助!

答案 1 :(得分:0)

我们遇到了导致测试中止的Unexpected TestSuiteWillFinish调用问题。在我们的例子中,这是由于过多的调试日志记录。禁用我们的日志记录会导致测试再次可靠地传递。

这似乎不是你问题的原因,但也许这是一个提示?

我的随意猜测是XCTest跑步者有某种超时。那么请检查您的测试是否及时执行?