web-dev-qa-db-ja.com

Coverage.py警告:データは収集されませんでした。 (データ収集なし)

Djangoプロジェクトのカバレッジモジュールを使用してカバレッジを見つけようとしていますが、「Coverage.py警告:データが収集されませんでした。(データ収集なし)」。プロジェクトフォルダーにはsrcがあります。フォルダーをテストします。

走るとき

カバレッジ実行-m pytest &&カバレッジレポート

Testsフォルダー内のファイルのリストを100%網羅したレポートを作成します。一方、私が走るとき

カバレッジの実行--source = src -m pytest &&カバレッジレポート

それは言います

Coverage.py警告:データは収集されませんでした。 (データ収集なし)
報告するデータはありません。

.coveragercでsource = srcまたはinclude = srcを指定しようとすると、同じ警告が発生します。上記のすべてのケースでテストに合格します。

Srcフォルダーのカバレッジが必要です。パス設定が不足しているためですか?

13
1010101

私は同じ問題を抱えていましたが、問題はテストを実行していたパスにありました。

現在動作しているもの:

構造

~/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
4
Nadav

問題は、カバレッジを取得するディレクトリを指定していないことです。

.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.inipytest 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
0
Ciel Li