Pytest
est un framework de tests populaires en Python qui rend les tests simples et évolutifs. Il offre des fonctionnalités qui rendent les tests plus pratiques et fournit des résultats clairs et détaillés. Voici quelques-unes des caractéristiques et fonctionnalités principales de
:
Caractéristiques principales
- Syntaxe simple: Écrivez des tests utilisant la syntaxe Python normale et les assertions standard.
- Fixtures: Réutilisez du code pour la mise en place et la démolition avec des fixtures.
- Paramétrage: Exécutez le même test avec différents arguments.
- Plugins: Étendez
pytest
avec une multitude de plugins disponibles ou écrivez le vôtre.
- Auto-découverte des tests: Les tests sont automatiquement découverts par
pytest
.
- Tests parallèles: Avec des plugins tels que
pytest-xdist
, vous pouvez exécuter des tests en parallèle, accélérant l’exécution.
- Fonctionnalités avancées: Comme le marquage de tests, sauter des tests, ou les exécuter en fonction des conditions.
Exemples
Test simple:
def test_sample(): assert 1 == 1
Utilisation des fixtures:
@pytest.fixture def sample_data(): return [1, 2, 3, 4, 5] def test_mean(sample_data): assert sum(sample_data) / len(sample_data) == 3
Paramétrage:
@pytest.mark.parametrize("a, b, expected", [ (1, 2, 3), (4, 5, 9), (10, 20, 30) ]) def test_addition(a, b, expected): assert a + b == expected
Marquage et saut de tests:
@pytest.mark.skip(reason="Skip this test for now") def test_for_skip(): assert False
Installation
Pour installer
, vous pouvez utiliser
:
pip install pytest
Exécution
Pour exécuter les tests, allez à la racine de votre projet où vos tests sont situés et exécutez simplement:
pytest
recherchera automatiquement les fichiers qui suivent le motif
ou
et exécutera toutes les fonctions et classes qui commencent par
.
Conclusion
est un outil puissant qui fournit une manière simplifiée d’écrire et d’exécuter des tests en Python. Grâce à sa flexibilité et à sa richesse en fonctionnalités, il est devenu l’un des frameworks de test les plus populaires dans la communauté Python.