XCTest错误和打印消息在AppCode中混淆

时间:2017-03-08 10:24:59

标签: swift logging output xctest appcode

我对这种形式的几个部分进行了长时间的测试:

    let value = computationThatLogs()
    XCTAssertEqual(value.a, 77)

我发现违反XCTAsserts的file:line:error消息经常混入下一节计算的调试消息中,通常甚至与调试消息在同一行!

为什么?我怎样才能防止这种情况发生?在每个部分看似不够之前fflush(stderr); fflush(stdout)

如果相关,每个部分的计算实际上是异步的;测试(即主线程)等待它们使用DispatchSemaphore完成。

我在AppCode中观察到了这一点;无法使用XCode重现。