2009-10-27 4 views
22

私はPython単体テストのルーキーです。カバレッジレポートに実際のテストファイルのカバレッジを含めることが望ましいですか?coverage.pyレポートからテストディレクトリを除外することはできますか?

例としてHTML reportのスクリーンショットがあります。

レポートにtests/test_credit_cardが含まれていることがわかります。私はそのコマンドのいくつかのバリエーションを試してみました

coverage html --omit=tests/ -d tests/coverage 

が、私はない私の人生のためには、除外/テストを得ることができます:最初は、私はそうのように、レポートからtests/ディレクトリを省略しようとしていました。敗北を受け入れた後、私はおそらくと思われるテストファイルがと報告されているのだろうかと考え始めました。

誰もがこれにいくつかの光を当てることができますか?ありがとう。

+0

私は同様の問題がありました。私は、カバレッジレポートに余分なPythonファイル(標準のlibなど)を必要としませんでした。私はXMLからそれらを取り除きました:http://stackoverflow.com/questions/2293647/how-do-i-generate-coverage-xml-report-for-a-single-package/2377148#2377148 –

答えて

16

問題を指摘できるので、テストの適用範囲を確認することをお勧めします。あなたのテストコードが実行されていない場合は、それを書いてもあまり意味がありませんでした!

2つの単体テスト関数に同じ名前を付けると、元の数ヶ月後に新しいテストが追加され、ちょうど同じ名前が選択されます。 unittestフレームワークはこれについて不平を言うことはありません - 関数の1つが他を隠し、テストの1つを実行しません!詳細なカバレッジレポートには、すぐに問題が表示されます。

テスト中に実行されていない他のコードがある場合は、他のバグも指摘することがありますが、一般に、テストの呼び出し方法によってはカバーされないボイラプレートコードだから100%になることに戸惑うことはありません。

そして、あなたが本当に必要としないテストコードがあれば、それはいつも削除するのが良いです!

+2

コードカバレッジ結果にテストを含めることは良い考えではありません。パーセンテージには、生産コードのテストカバレッジが表示され、到達不能または死んだテストコードが間接的にあることを示すものではありません。さまざまな方法を使用してテストコードの問題を見つけ、コードカバレッジメトリックを誤用しないでください。 –

22

coverage html --omit="*/test*" -d tests/coverage

5

プロジェクトのルートフォルダに.coveragercファイルを作成し、次のものがあります。

[run] 
omit = *tests* 
+0

run omit = * tests * –

+0

答えを変更する必要がある場合はeditを押してこれを行うことができます – WhatsThePoint

+0

@CynthiaSimiyu、あなたの答えは複数のディレクトリを省略する必要があったので本当に役に立ちました。 – lmiguelvargasf

関連する問題