web-dev-qa-db-ja.com

結合pythonカバレッジファイル?

coverage.xmlファイルを1つのファイルに結合して、HTML出力でグローバルレポートを表示できるかどうか疑問に思っています。

unit/functional testsを1つのコマンドとして実行し、integration testsを2番目のコマンドとして実行しています。つまり、unit/functional testsのカバレッジはunit testsによって上書きされます。

主にそれらのファイルを1つのファイルに結合することによって、その問題の解決策があれば、それは素晴らしいことです。

16
tunarob

別の解決策を見つけました。 combine機能を使用しました( ここを読んでください )したがって、次のようにカバレッジを実行します:coverage run -pそして私はcoverage combine

それで全部です。 1つの結合されたレポートを生成します。

16
tunarob

.xmlファイルを結合することはできませんが、生データファイルを結合することはできます。ワークフローは次のようになります。

$ COVERAGE_FILE=.coverage_func coverage run the_functional_tests.py
$ COVERAGE_FILE=.coverage_inte coverage run the_integration_tests.py
$ coverage combine
$ coverage xml
18
Ned Batchelder

追加オプションを使用しても同じ結果を得ることができます。 3つのpythonスクリプトでカバレッジを実行したとします。最初のカバレッジの後、追加に-aを使用します。

coverage run first.py
coverage run -a second.py
coverage run -a third.py

レポートを印刷する

coverage report -m

出力:レポート

Name             Stmts   Miss  Cover   Missing
----------------------------------------------
first.py           97      1    99%   95
second.py            1      0   100%
third.py            10      0   100%
----------------------------------------------
TOTAL               108      1    99%
10
Rishi Bansal

ソースコードがmy_projectというディレクトリにある場合、仮想環境にpytestpytest-covを含めていればこれを行うこともできます。

pytest --cov-report html --cov=my_project unit_tests
pytest --cov-report html --cov=my_project --cov-append functional_tests

--cov-appendは、単体テストの実行時に作成されたカバレッジファイルに機能テストカバレッジ情報を追加します。

0
the-kakfa-dude

カバレッジ実行コマンドで-aオプションを使用します。例:coverage run -a test1.pyこれにより、結果が既存のカバレッジファイルに追加され、カバレッジレポートを実行して同じことを確認します。

0
shaz