python私がunittest
とcoverage
を使用しているプロジェクトの単体テストを書き始めたところです。現在はわずかな割合しかテストしていませんが、コードカバレッジを解決しようとしています
テストを実行し、次を使用してカバレッジを取得します
python -m unittest discover -s tests/
coverage run -m unittest discover -s tests/
coverage report -m
私が抱えている問題は、coverage
がコードカバレッジが44%であり、次のファイルのみをカウントしていることを示していることです。
単体テストでテストされました(つまり、テストされなかったすべてのファイルが欠落しており、全体的なカバレッジではありません)
仮想環境のライブラリにあり、実際のテストのコードカバレッジもありました。確かに結果に実際のテストを含めるべきではありませんか?
さらに、これらの単体テストで実際にテストされたファイルには、テストされた最初の数行(ほとんどの場合、インポートステートメント)しかありません
より現実的なコードカバレッジを取得するにはどうすればよいですか?
--source=.
をcoverage
実行行に追加します。フォーカスを現在のディレクトリに限定し、まったく実行されなかった.py
ファイルを検索します。
代わりにnose
をテストランナーとして使用する場合、そのカバレッジプラグインは提供します
--cover-inclusive Include all python files under working directory in
coverage report. Useful for discovering holes in test
coverage if not all files are imported by the test
suite. [NOSE_COVER_INCLUSIVE]
--cover-tests Include test modules in coverage report
[NOSE_COVER_TESTS]