是否可以使用nose
同时运行单个测试(跨多个进程)并将结果聚合为单个通过/失败结果?
我们需要同时多次运行相同的测试,以确保资源锁定不受影响。如果鼻子不能做到这一点,是否需要遵循特定的测试/设计模式来实现这一目标?
答案 0 :(得分:11)
这似乎是您在测试定义中想要的东西,因为您想要对结果的聚合进行断言。我会看一下在测试中使用multiprocessing。创建一个池来并行执行代码。您可以使用Queue汇总结果。
答案 1 :(得分:9)
可以run tests concurrently with nose:
使用nose.plugin.multiprocess 插件,您可以并行化测试运行 跨越可配置数量的工人 流程。虽然这可以加快 CPU绑定测试运行,主要是 对于花费的IO绑定测试很有用 他们大部分时间都在等待数据 从其他地方到达并且可以 从并行化中受益。
我已经调整了插件,可以根据需要并行运行单个测试。从http://paste.pocoo.org/show/319470/下载并另存为nose/plugins/repeat.py
。然后,在nose/plugins/builtin.py
中,将行('nose.plugins.repeat', 'RepeatMultiProcess'),
添加到builtins
。像这样打电话:
c:\python27\python nose-1.0.0\selftest.py --repeat-processes=2 --repeat-times=3 test2.py
注意:设置/拆卸支持可能会被破坏。如果是这样,修复很简单,请参阅行
中的注释