我们最近设置了一些带有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.
答案 0 :(得分:5)
我得到了相同的随机行为。我能够确定我正在进行异步调用并对其进行测试,这是导致此随机Unexpected TestSuiteWillFinish
的原因。
当我使用Kiwi
时,我所做的是等待一些异步调用的结束,如此处所示(https://github.com/allending/Kiwi/wiki/Asynchronous-Testing),以进行那些特定的异步调用。
希望这有帮助!
答案 1 :(得分:0)
我们遇到了导致测试中止的Unexpected TestSuiteWillFinish
调用问题。在我们的例子中,这是由于过多的调试日志记录。禁用我们的日志记录会导致测试再次可靠地传递。
这似乎不是你问题的原因,但也许这是一个提示?
我的随意猜测是XCTest跑步者有某种超时。那么请检查您的测试是否及时执行?