Aller au contenu

pytest

Pytest est un framework de test Python utilisé pour écrire et lancer des tests.

Utilisé avec pytest-cov, il permet également d'utiliser Coverage.py pour estimer la couverture de code.

Configuration

pyproject.toml
[project.optional-dependencies]
test = [
    "pytest",
    "pytest-cov",
    "pytest-xdist[psutil]",
]

[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = "src" # fix imports in tests
addopts = [
    "--import-mode=importlib",
    "--numprocesses=auto",
    "--cov=src",
    "--cov-report=term:skip-covered",
    "--cov-report=html",
]

Tip

Pour régler les problèmes d'imports dans les tests, ajouter la config suivante. Ce problème n'apparaît pas lorsqu'on installe le package avec venv/bin/pip install -e ..

pyproject.toml
[tool.pytest.ini_options]
pythonpath = "src"

Utilisation

Pour lancer tous les tests :

$ pytest -s

Pour lancer un test spécifique :

$ pytest <module path>::<class name>::<method name>

Référence