pytest在单独的线程中失败

Kei*_*son 6 python multithreading integration-testing pytest

我们正在为我们的集成测试调整pytest,并尝试使用pytest fixture来使用单独的线程生成一些后台测试环境监视.

当我们使用fixture时,监视器线程在启动时没有启动问题,但是如果其中一个后台监视器线程检测到问题,我还没有找到pytest使主测试失败的方法.

有谁知道在pytest中实现这个的好方法?是否有任何钩子我们可以在主pytest线程中使用钩子来捕获在我们的一个后台监视器线程中调用的pytest.fail?

谢谢!

Sim*_*mon 4

为了供将来参考,这是我使用的解决方案:

https://gist.github.com/sbrugman/59b3535ebcd5aa0e2598293cfa58b6ab

我们包装某些部分threading.Thread来传播异常。请注意,当您有权访问生成线程的位置时,这才有效。