2011-11-21 80 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」。 –