2009-11-12 63 views
1

我正在使用Hudson來持續集成我們的項目。我們使用python,git和nose測試進行單元測試。我需要的是哈德森應該在每次構建之後進行鼻子測試。爲此,我在執行shell部分中添加了以下shell腳本。在Python中使用Hudson配置「執行shell」腳本

$ nosetests /sub/test_sample1.py 
$ nosetests /sub/test_sample2.py 
$ nosetests /sub/test_sample3.py 

...

哈德森被正確地執行這些腳本。但問題是,如果任何測試腳本在此失敗,那麼它將不會在其旁邊運行其他腳本。它在第一次錯誤後停止。我希望它應該繼續執行所有測試用例。我怎樣才能做到這一點?

+0

你的意思是'在Python中'配置'執行shell'腳本'Hudson'' – bguiz 2009-11-12 05:00:08

+0

你好ramesh你在印度的哪個地方。聯繫我們@ http://anirudhagupta.blogspot.com – 2009-11-12 12:07:56

+0

您可以編寫一個忽略故障並繼續執行的主shell腳本。它可以創建一個日誌,從中可以找出出錯的地方。 – 2011-04-07 20:56:41

回答

0

對於我自己的項目,我編寫了一個fabric python文件來管理所有的單元測試。由於我使用django,因此我將django與鼻子和覆蓋範圍結合在一起。

這裏是我的我的腳本的一部分:

local('%(local_virtual_env)s/Scripts/activate.bat' 
     ' & cd %(local_project_path)s/configs/common' 
     ' & python manage.py test test1 ' 
     '--settings=myprofile.configs.local.settings_local ' 
     '--with-coverage --with-xunit --with-xcoverage ' 
     '--cover-tests --cover-erase --cover-inclusive ' 
     '--cover-package=myprofile.apps' % env, 
     capture=False) 
1

我會充分利用鼻子的找到測試和運行它們,而不是能力。

重命名你的測試文件,像子/ sample1_test.py,分/ sample2_test.py,等等,然後只需運行

nosetests sub/ 

鼻子會尋找在_test結尾的文件並運行它們。非常便利。請參閱「finding tests」的鼻子文檔。

如果不清楚,鼻子一旦發現所有的測試,都會運行全部。在所有測試運行之前,這樣可以防止失敗,但如果其中任何一個測試未通過,則會失敗。