web-dev-qa-db-fra.com

Couverture des tests unitaires avec GitLab CI

J'essaie de configurer un outil de couverture de test unitaire pour l'un des projets Python. J'ai réussi à créer un script pour le fichier GitLab CI YML, mais il se heurte à des erreurs lorsqu'il est déclenché. Voici l'erreur que je reçois:

ImportError while importing test module '/builds/user1/myProj/tests/test_run.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/test_run.py:12: in <module>
    from data import prepare_data as pd
E   ImportError: No module named 'data'
=========================== 1 error in 0.06 seconds ============================

Dans le test_run.py, j'ai les importations suivantes:

sys.path.append(os.path.abspath('../src'))
from data import prepare_data as pd

Voici mon fichier GitLab CI YML:

- pip install -r requirements.txt
- python -m pytest -v --cov=myproj/ --cache-clear --color=yes tests/

J'ai le __init__.py nécessaire dans le dossier src. Le dossier src a un sous-dossier appelé data que j'importe dans mon test unitaire comme:

sys.path.append(os.path.abspath('../src'))

Y a-t-il quelque chose qui me manque?

4
sparkr

J'ai réussi à corriger cette erreur en passant complètement à un autre package Python de couverture de test. Voici ma configuration GitLab CI yml qui imprime le rapport de couverture même lorsque GitLab est exécuté:

- nosetests --with-coverage --cover-erase --cover-package=tests/ --cover-html

Cela fonctionne juste comme je m'y attendais!

0
sparkr