2017-09-24 4 views
0

はPythonのカバレッジの設定(.coveragerc)ファイルを使用したときに実行する1つの以上のテストファイルを指定する方法があります。 設定ファイルでなければ、おそらくコマンドラインから実行することは可能でしょうか?現時点で は、3種類のユニットテストファイル用に私が使用しています:Pythonのカバレッジ:実行中の1つの以上のテスト私は思ったんだけど

coverage run test1 
coverage run -a test2 
coverage run -a test3 

それはどんな短いことはできますか? おかげ

+0

あなたはpytestを通じてカバレッジを実行することができ... – thebjorn

答えて

1

編集(2017年9月25日):新しいプロジェクトを開始する場合は、鼻がメンテナンスされていないあるとして NED-batchelderはコメントで述べている@としては、nosepytestを好みます。

Coverage documentationを見ると、coverageがサポートする唯一のモードが各コマンドで特定のモジュールを実行しているように見えます。

あなたはすべてのテストを実行するために、このようnosepytestとして、テストフレームワークを使用して、成功/失敗率と総カバレッジをレポートできます。

pytest、カバレッジ、及びpytest-COV

pip install pytest 
pip install coverage 
pip install pytest-cov 

2をインストール)pytest

1を使用して総符号超過を見つける。)そのすべてのモジュールまたはパッケージの--covフラグを使用して、pytest commmandを実行あなたが必要とするカバレッジ

pytest --cov=foo --cov=bar 

出力例:たとえば、彼らはパターンtest_*.py(または他の、より多くの情報here)と一致した場合

Name  Stmts Miss Cover Missing 
-------------------------------------- 
bar.py  3  1 67% 5 
foo.py  6  2 67% 9-11 
-------------------------------------- 
TOTAL  9  3 67% 

pytestは、あなたのテストを見つけます。

nose

1を用いて、全コードカバレッジを見つける。)鼻及びカバレッジ

pip install nose 
pip install coverage 

2をインストール)--with-coverageフラグ

nosetests --with-coverage 
と、nosetestsコマンドを実行

出力例(単一のモジュールfoo.pyを持つ):

Name  Stmts Miss Cover 
---------------------------- 
foo.py  6  2 67% 
---------------------------------------------------------------------- 
Ran 1 test in 0.008s 

OK 

nosetestsが自動的にあなたのテストは、いくつかのヒューリスティックを使用して見つけることができます。あなたはtestで始まるファイル名にテストを入れて、unittest.TestCaseから継承してテストケースを作成した場合、それらを見つけるでしょうnosetests。詳細情報here

+1

は鼻を使用しないでください。それは維持されていない。 pytestから始めましょう。 –

関連する問題