5

鉴于以下情况:

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确实会产生任何影响,因为不使用固定装置。

如何让这五个测试同时运行?

4

2 回答 2

5

根据nose 的作者,在邮件列表中,多进程插件不适用于1.3 中的生成器(一个已知错误),如果需要它工作,他建议坚持使用1.1。

于 2013-05-07T11:07:48.037 回答
3

你可以试试

from time import sleep
from multiprocessing import Process

def runTest(a):
    sleep(1)
    assert a >= 0

def test_all():
    for i in range(5):
        Process(target=(yield (runTest, i))).start()
于 2013-05-04T21:15:25.340 回答