web-dev-qa-db-fra.com

Avertissement Coverage.py: Aucune donnée n'a été collectée. (pas de données collectées)

J'essaie de trouver la couverture en utilisant le module de couverture pour un projet Django mais obtient "Avertissement Coverage.py: Aucune donnée n'a été collectée. (Pas de données collectées)". Mon dossier de projet contient src et teste les dossiers.

Quand je cours

report de couverture -m pytest && rapport de couverture

Il produit un rapport avec une couverture à 100% avec la liste des fichiers dans le dossier tests. Alors que quand je cours

couverture --source = src -m rapport pytest && de couverture

ça dit

Avertissement Coverage.py: Aucune donnée n'a été collectée. (pas de données collectées)
Aucune donnée à signaler.

Lorsque j'essaie de donner la source = src ou include = src dans le .coveragerc, le même avertissement se produit également. Les tests réussissent pour tous les cas ci-dessus.

Je veux la couverture du dossier src. Est-ce parce que je manque un paramètre de chemin?

13
1010101

J'ai eu le même problème et le problème venait du chemin sur lequel j'exécutais les tests.

Ce qui fonctionne maintenant:

Structure

~/Projects/ProjectName
├── manage.py
├── tests
├── src
│   ├── app_one
├── .coveragerc

Commander:

~/Projects/ProjectName$ coverage run manage.py test

et mon .coveragerc:

[run]
include = */src/*
omit = *migrations*, *tests*
plugins = Django_coverage_plugin
4
Nadav

Le problème est que vous ne spécifiez pas de quel répertoire obtenir la couverture.

Vous pouvez spécifier que dans le .coveragerc fichier ou sur la ligne de commande:

pytest tests -v --cov-report term --cov-report html:htmlcov --cov-report xml --cov-fail-under=90 --cov=<the-dir-to-colect-coverage-from>

Si vous le souhaitez, vous ne pouvez exécuter que pytest tests et ajoutez pytest args sur pytest.ini à la racine de votre projet:

[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>

Bonus:

Si vous souhaitez omettre des fichiers de la couverture, vous pouvez ajouter un .coveragerc fichier sur la racine de votre projet:

[run]
omit =
    # omit everything in the folder
    proj-ab/api/confs/
    # omit file
    proj-ab/models/file-not-covered.py

Exigences: Sur ces exemples, j'utilise des exigences: pytest==4.6.2 et pytest-cov==2.7.1

si vous devez utiliser "source", vous pouvez écrire comme ci-dessous

[run]
source = src
omit = *migrations*, *tests*
plugins = Django_coverage_plugin
0
Ciel Li