我们正在为我们的集成测试调整 pytest,并尝试使用 pytest 固定装置使用单独的线程生成一些后台测试环境监控。
当我们使用 fixture 时,监视器线程在启动时启动没有问题,但是如果一个后台监视器线程检测到问题,我还没有找到一种方法让 pytest 使主测试失败。
有谁知道在pytest中完成这个的好方法?我们可以在主 pytest 线程中使用任何钩子(Hook)来捕获在我们的一个后台监视器线程中调用的 pytest.fail 吗?
谢谢!
最佳答案
为了将来引用,这是我使用的解决方案:
https://gist.github.com/sbrugman/59b3535ebcd5aa0e2598293cfa58b6ab
我们包装了 threading.Thread
的某些部分传播异常。
请注意,当您可以访问生成线程的位置时,这将起作用。
关于python - pytest 在单独的线程中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43791360/