鉴于以下情况:
from time import sleep
def runTest(a):
sleep(1)
assert a >= 0
def test_all():
for i in range(5):
yield (runTest, i)
我希望这五个测试与 nosetests --processes=8
并行运行,因此运行时间大约为一秒——然而,运行只需要五秒多一点:它们出现顺序运行而不是同时运行。
根据 nose 文档,多进程插件从 1.1 开始就支持测试生成器(正如 nose 文档对它们的称呼):我使用的是 nose 1.3.0,因此应该支持它。添加 _multiprocess_can_split_ = True
确实会有所不同,正如人们所期望的那样,因为没有使用固定装置。
如何让这五个测试同时运行?
最佳答案
根据 nose 的作者,on the mailing list ,多进程插件不适用于 1.3 中的生成器 ( a known bug ),如果需要的话,他建议坚持使用 1.1。
关于来自生成器的 Python Nose 测试未同时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16378996/