是否可以同时使用Nose多次运行一次测试?

时间:2010-11-03 14:55:46

标签: python unit-testing nose

是否可以使用nose同时运行单个测试(跨多个进程)并将结果聚合为单个通过/失败结果?

我们需要同时多次运行相同的测试,以确保资源锁定不受影响。如果鼻子不能做到这一点,是否需要遵循特定的测试/设计模式来实现这一目标?

2 个答案:

答案 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

注意:设置/拆卸支持可能会被破坏。如果是这样,修复很简单,请参阅行

中的注释