2011-11-21 70 views
3

我不能以编程方式运行几个进程的鼻子。Python鼻子 - 以编程方式运行多进程

这工作...:

PYTHONPATH="/home/developer/Downloads/unittest2-0.5.1:" nosetests --processes=4 

它生成4个浏览器一次。

但是在eclipse中运行它时,它会逐个运行它们。

nose.run(defaultTest="",argv=['--processes=4','--verbose', '--process-timeout=30']) 

我知道的参数被踢,因为我可以看到冗长的说法不同。

+0

可能是一个重复的问题:http://stackoverflow.com/questions/3111915/getting-tests-to-parallelize-using-nose-in-python –

+0

我实际上在问之前阅读这个问题。我认为它不是一个重复的问题,因为其他用户不能“看到”并行的测试。我可以看到他们,(他们是硒测试和浏览器跨越每个测试)。区别在于它只发生在命令行中,而不是来自代码(即Eclipse)。 – dgrandes

回答

5

答案有点棘手!

由于某些原因,nose.run忽略了它接收到的第一个参数。

这其实工作原理:

nose.run(defaultTest="",argv=['','--processes=4','--verbose', '--process-timeout=90']) 

这完全回答这个问题的困境:“我知道的参数被踢,因为我可以看到的详细参数的差异。” :)

+3

'argv'的第一个元素是程序名称本身。在[docs](http://nose.readthedocs.org/en/latest/doc_tests/test_multiprocess/multiprocess.html)中,您可以看到它始终是“nosetests”。 –