2013-04-24 84 views
25

我有一些Selenium Webdriver GUI測試,在我們的Trac/Bitten構建環境中的每個簽入中運行。由於各種愚蠢的原因,這些是脆弱的,重新運行失敗的測試總是有效的(除非沒有,然後我有一個實際上失敗的測試)。如何才能讓鼻子重新運行只有失敗的測試?

如何重新運行這些失敗的測試? GUI測試需要10-15分鐘才能運行,所以重新運行它們都是一件痛苦的事情。

下面是構建步驟:

<step id="guitest" description="Run gui tests"> 
    <sh:exec executable="gui_tests.sh" /> 
</step> 

和gui_tests.sh

# Setup environment stuff deleted 
nosetests python/*Tests.py -v 

我們正在努力使GUI測試更加健壯,但我的理解是,這是與GUI測試生活。

+0

如果你想在一個步驟中做到這一切,Flaky插件可能會有所幫助:http://stackoverflow.com/questions/7234086/python-unittest-retry-on-failure-with-nose/30306934#30306934 – Zymotik 2015-05-20 08:47:58

回答

48

事實證明,這是與鼻子微不足道。首先運行命令幷包含--with-id標誌。

# Environment stuff deleted 
nosetests python/*Tests.py -v --with-id 
nosetests python/*Tests.py -v --failed 

如果說,四項測試失敗,與--failed標誌運行將只運行這四個測試。如果您再糾正三個,運行--failed將只運行剩餘的失敗測試。

運行--with-id再次重置失敗測試的跟蹤並運行所有找到的測試。

在我徘徊寫入我自己的插件之前,我搜索了很多。當我研究如何註冊我的插件時,我發現一些代碼恰好是由鼻子提供的testid plugin,它提供了上述功能。嘖。我在這裏記錄下來,希望能夠挽救別人一些時間。

當然,現在我知道它,它是如此明顯與發現:

nosetests --help 

我掃描的文檔開始,但沒想到會那麼容易,所以我這樣做了半全心全意。

+1

你* can *實際上最初不帶'--with-id'運行。如果使用'--failed'運行,並且最後一次測試沒有捕獲到信息,它將運行所有測試。 – 2016-06-03 10:06:03

相關問題