可以谷歌测试处理多线程测试输出在windows上



我刚刚遇到了一个问题,在windows上运行boost单元,其中来自多个线程的输出不是原子的,因此如果我将任何测试或消息放在主线程以外的任何线程中,它会破坏输出XML,从而混淆CI系统。

我看不到任何提升单位选项来控制这一点,所以我想知道这是谷歌测试可以做的事情,这将使它值得切换到谷歌测试代替(搜索维基没有找到我任何东西)。

或者我应该使用其他方法(当在linux上从命令行运行测试以查看此输出时,它很有用)。但我不想让它打破我的窗户(CI)?

GTest的输出是互斥保护的,所以多线程不会产生乱码的输出。

通常完成这项工作的函数是AddTestPartResult。在第3713行,您可以看到正在应用锁:

internal::MutexLock lock(&mutex_);

,然后在3732处输出结果:

impl_->GetTestPartResultReporterForCurrentThread()->ReportTestPartResult(result);

相关内容

  • 没有找到相关文章

最新更新