我对这种形式的几个部分进行了长时间的测试:
let value = computationThatLogs()
XCTAssertEqual(value.a, 77)
我发现违反XCTAsserts的file:line:error
消息经常混入下一节计算的调试消息中,通常甚至与调试消息在同一行!
为什么?我怎样才能防止这种情况发生?在每个部分看似不够之前fflush(stderr); fflush(stdout)
。
如果相关,每个部分的计算实际上是异步的;测试(即主线程)等待它们使用DispatchSemaphore
完成。
我在AppCode中观察到了这一点;无法使用XCode重现。
答案 0 :(得分:0)