web-dev-qa-db-ja.com

カバレッジをテストされていないファイルに含めるにはどうすればよいですか?

python私がunittestcoverageを使用しているプロジェクトの単体テストを書き始めたところです。現在はわずかな割合しかテストしていませんが、コードカバレッジを解決しようとしています

テストを実行し、次を使用してカバレッジを取得します

python -m unittest discover -s tests/
coverage run -m unittest discover -s tests/
coverage report -m

私が抱えている問題は、coverageがコードカバレッジが44%であり、次のファイルのみをカウントしていることを示していることです。

  1. 単体テストでテストされました(つまり、テストされなかったすべてのファイルが欠落しており、全体的なカバレッジではありません)

  2. 仮想環境のライブラリにあり、実際のテストのコードカバレッジもありました。確かに結果に実際のテストを含めるべきではありませんか?

さらに、これらの単体テストで実際にテストされたファイルには、テストされた最初の数行(ほとんどの場合、インポートステートメント)しかありません

より現実的なコードカバレッジを取得するにはどうすればよいですか?

35
user4591756

--source=.coverage実行行に追加します。フォーカスを現在のディレクトリに限定し、まったく実行されなかった.pyファイルを検索します。

36
Ned Batchelder

代わりに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]
1
Daenyth