2013-04-24 5 views
25

Trac/Bittenビルド環境ですべてのチェックインで動作するSelenium Webdriver GUIテストがあります。さまざまなばかげた理由から、これらは壊れやすく、失敗したテストは常に正常に動作します(失敗しない限り、実際に失敗したテストがある)。どのようにして鼻が失敗したテストのみを再実行することができますか?

これらの失敗したテストを再実行するにはどうすればよいですか? GUIテストの実行には10〜15分かかります。そのため、すべてを再実行するのは苦労します。ここで

ビルドステップです:私たちは、GUIのテストをより強固にするために取り組んでいるが、私の理解では、これはGUIのテストとの生活であるということである

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

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

をgui_tests.sh 。

+0

Flickyプラグインを使用すると、1つのステップですべてを実行できます。http://stackoverflow.com/questions/7234086/python-unittest-retry-on-failure-with-nose/30306934#30306934 – Zymotik

答えて

48

これは鼻では些細なことです。最初にコマンドを実行し、--with-idフラグを含めます。

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

たとえば、もし、4つのテストは、これらの4つのテストを実行します--failedフラグを付けて実行し、失敗します。 3つを修正すると、--failedで実行すると残りの失敗したテストのみが実行されます。

--with-idを実行すると、失敗したテストのトラッキングがリセットされ、検出されたすべてのテストが実行されます。

私は自分のプラグインを書く前にこれをかなり探しました。私がプラグインを登録する方法を研究していたときに、上記の機能を提供するノーズによって提供されたtestid pluginのコードが見つかりました。 Sheesh。私はここにこれを文書化しています。今、私はそれについて知っていること、それがこのように明らかにしています。もちろん、

、:

nosetests --help 

は、私が最初にドキュメントをスキャンし、それはとても簡単なこととは思わなかったので、私はそうハーフました心から。

+1

実際には '--with-id'なしでこれを実行できます。 '--failed'で実行していて、最後のテストが情報を取得しなかった場合は、すべてのテストを実行します。 –