Djangoプロジェクトのカバレッジモジュールを使用してカバレッジを見つけようとしていますが、「Coverage.py警告:データが収集されませんでした。(データ収集なし)」。プロジェクトフォルダーにはsrcがあります。フォルダーをテストします。
走るとき
カバレッジ実行-m pytest &&カバレッジレポート
Testsフォルダー内のファイルのリストを100%網羅したレポートを作成します。一方、私が走るとき
カバレッジの実行--source = src -m pytest &&カバレッジレポート
それは言います
Coverage.py警告:データは収集されませんでした。 (データ収集なし)
報告するデータはありません。
.coveragercでsource = srcまたはinclude = srcを指定しようとすると、同じ警告が発生します。上記のすべてのケースでテストに合格します。
Srcフォルダーのカバレッジが必要です。パス設定が不足しているためですか?
私は同じ問題を抱えていましたが、問題はテストを実行していたパスにありました。
現在動作しているもの:
構造
~/Projects/ProjectName
├── manage.py
├── tests
├── src
│ ├── app_one
├── .coveragerc
コマンド:
~/Projects/ProjectName$ coverage run manage.py test
私の.coveragerc:
[run]
include = */src/*
omit = *migrations*, *tests*
plugins = Django_coverage_plugin
問題は、カバレッジを取得するディレクトリを指定していないことです。
.coveragerc
ファイルまたはコマンドラインで指定できます。
pytest tests -v --cov-report term --cov-report html:htmlcov --cov-report xml --cov-fail-under=90 --cov=<the-dir-to-colect-coverage-from>
必要に応じて、プロジェクトルートでpytest tests
を実行し、pytest.ini
にpytest
argsのみを追加できます。
[pytest]
addopts = -v --cov-report term --cov-report html:htmlcov --cov-report xml --cov-fail-under=<coverage-percentage-desired> --cov=<the-dir-to-colect-coverage-from>
ボーナス:
カバレッジからファイルを除外する場合は、プロジェクトルートに.coveragerc
ファイルを追加できます。
[run]
omit =
# omit everything in the folder
proj-ab/api/confs/
# omit file
proj-ab/models/file-not-covered.py
要件:これらの例では、要件を使用しています:pytest==4.6.2
およびpytest-cov==2.7.1
「ソース」を使用する必要がある場合は、次のように書くことができます
[run]
source = src
omit = *migrations*, *tests*
plugins = Django_coverage_plugin