Pytest使用线程无限期运行



我正在使用PyTest为个人项目执行一些单元测试。pytest调用一个初始化多个线程的类。当这些线程无限期运行时,它们永远不会关闭,pytest也永远不会终止,这意味着我运行测试的gitlab管道会自动失败。线程对于测试和模拟是至关重要的。在这种情况下,调用这些线程并不能解决问题。

有没有一种方法可以将PyTest配置为在通过或失败时终止所有子线程?或者有没有一种方法可以使用一些bash技巧来实现这种行为?

提前感谢您的帮助。

E.g

Class A:
def  __init__():
thread.start(C, daemon=True)
thread.start(D, daemon=True)
…   
Class B:
def  __init__():
Self.a = A()

def example(self, inp):
return self.a.function(inp)
test_B_example()
assert a.function(“test”)

PyTest test_B_example->尽管已经过去,却永远在奔跑。

尝试将sys.exit((添加到python代码中,以在执行完所有测试后终止代码,但未成功。

也有同样的问题,只需让线程作为守护进程运行即可解决:

fred = threading.Thread(target=self.updater, args=(1,))
fred.daemon = True
fred.start()

最新更新