【发布时间】:2021-06-08 16:44:04
【问题描述】:
我正在尝试使用 multiprocessing.Process() 测试可能崩溃的函数。如果函数在 10 分钟内没有理想地响应,下面编写的代码将重新启动调用,这完全可以正常工作,即使 self.assert... 测试工作正常。问题出在覆盖率上,出于某种原因,在我的文件上运行覆盖率表明 my_func 正在被调用,但在测试时它内部没有任何内容被覆盖,而测试(需要执行整个函数而不会崩溃) ) 正在过去。
while True:
p = multiprocessing.Process(
target=my_func, args=(return_dict) # return_dict to get the return values
)
p.start()
p.join(600)
if p.is_alive():
print(
"Taking too long, "
+ "KILLING IT and starting AGAIN."
)
p.kill()
p.join()
else:
break
我做错了什么吗?如果信息似乎不完整,请告诉我,我将添加我的测试和功能。
【问题讨论】:
标签: python code-coverage python-multiprocessing python-unittest coverage.py