单元测试期间出现Xcode CI bot错误(意外的TestSuiteWirlFinish)

单元测试期间出现Xcode CI bot错误(意外的TestSuiteWirlFinish),xcode,unit-testing,continuous-integration,sentestingkit,Xcode,Unit Testing,Continuous Integration,Sentestingkit,我们最近在iOS应用程序中设置了一些,以自动构建和测试我正在使用的应用程序。如果我只是构建和分析,构建过程会很好地工作。如果我将其设置为运行测试,则会出现大量错误,最终导致意外的TestSuiteWillFinish。例如,最近的运行显示: 运行测试套件TimeClockTestCase遇到错误(意外 TestCaseDidFinish)testParseResponseString遇到错误 (意外的TestSuiteWirlFinish)testGetIntegrationID遇到错误 错误(

我们最近在iOS应用程序中设置了一些,以自动构建和测试我正在使用的应用程序。如果我只是构建和分析,构建过程会很好地工作。如果我将其设置为运行测试,则会出现大量错误,最终导致
意外的TestSuiteWillFinish
。例如,最近的运行显示:

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

之前的那个只有一个错误:

testAddChildObjectTypeTimeClockEvent遇到错误(意外 测试套件(完成)

集成结果显示所有测试都已通过,无论显示什么错误。如果直接通过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.

我也有同样的随机行为。我能够识别出我正在进行一个异步调用,并对其进行测试,这就是导致此随机
意外测试套件将完成的原因

当我使用
Kiwi
时,我所做的是在异步调用结束时稍等一点,就像这里为那些特定的异步调用所指示的()


希望这有帮助

我们遇到了同样的问题,即
意外的TestSuiteWillFinish
调用导致测试中止。在我们的例子中,这是由于调试日志记录过多造成的。禁用日志记录导致测试再次可靠地通过

这似乎不是你问题的原因,但可能是个暗示


我的猜测是,XCEST跑步者有某种超时。因此,请检查您的测试是否及时执行?

事实证明确实如此,尽管修复方法略有不同,因为我们使用CocoaLumberjack而不是Kiwi。为了便于参考,我将
#define LOG_ASYNC_ENABLED YES
更改为
NO