2017-05-12 17 views
2

コマンドラインから実行したunittestを使用して、大きなPythonテストファイルがあります。いくつかのテストには時間がかかります。これは、私が追加した最後のテストにしか関心がないことが多いため、軽度の痛みです。私が欲しいのはこれです:失敗したテストのみを実行しているPython unittest

  1. テストを追加します。
  2. を実装するときに私が作った愚かなエラーを修正行動前回失敗した
  3. 実行のみテストを実施
  4. 走行テスト(私はそれを渡すようにコードを書いていないので、一つが故障しました)コード
  5. この時間を過ぎて失敗するテストのみを実行します。
  6. 私が壊したものを見つけるためにすべてのテストを実行します。

これはコマンドラインから実行できますか?そのテストは無視されます

def _test_something_something(self): 

:あなたのような、前にアンダースコアを追加した場合

def test_something_something(self): 

+0

は、最も可能性の高いあなたの問題を解決するだろう。 –

+0

どうしたらうまくいくのですか?私はまだ、どのファイルが動作していて、どのファイルが動作していないのかを知るためには、まだPythonが必要です... – Joe

答えて

1

すべてのテスト機能は次のように宣言されています。あなたができることの1つは、すばやく行うことですfind and replace in vim。すべての "test_"を見つけて "_test_"と置き換え、失敗した1つのテストを見つけてアンダースコアを削除します。

1

(未完全に自動化されたソリューションが、既存のものよりも良い)

あなたはテストスクリプトの引数としてテストクラスの名前を渡すと、それだけでテストが実行されます。たとえば、あなただけのスクリプトtest_whatever.pyMyTestクラスのテストを実行する場合:

python3 test_whatever.py MyTest 

またそのクラスのメンバーとして個々のテストを指定することができます。たとえば、あなたがクラスMyTestでテストtest_somethingを実行するとします。別々のファイルにあなたのユニットテストを破る

python3 test_whatever.py MyTest.test_something 
+0

Upvotedは、そこにある方法のほとんどを私にもたらします。もしかしたら、 :) – Joe

関連する問題