Résumé
Dans ce module, vous avez exploré les fonctionnalités pytest qui vous aident à écrire des tests plus expressifs et gérables. Vous avez utilisé @pytest.mark.parametrize pour exécuter la même fonction de test avec plusieurs valeurs d’entrée. Pytest collecte chaque jeu de paramètres sous la forme d’un cas de test distinct, afin que les rapports puissent identifier exactement quelle entrée a réussi ou échoué.
Vous avez également travaillé avec des appareils. Les fixtures fournissent du code de configuration réutilisable, rendent les dépendances de test explicites par le biais d'arguments de fonction, et peuvent gérer le nettoyage à l’aide de démonte basées sur yield et des portées de fixtures appropriées. Vous avez appliqué ces idées en écrivant des tests paramétrés et en refactorisant un test basé sur des classes du style setup_method() xUnit et teardown_method() vers unefixture personnalisée qui utilise la fixture tmp_path de pytest pour la gestion temporaire des fichiers. Vous avez également examiné les éléments intégrés, y compris tmp_path, qui fournit un pathlib.Path répertoire temporaire pour chaque appel de fonction de test, et monkeypatch, qui modifie temporairement les attributs, les valeurs de dictionnaire, les variables d’environnement, sys.pathou le répertoire de travail actuel et restaure ces modifications après la fin du test ou du montage demandé.
Vous pouvez désormais :
- Utilisez la paramétrisation pour couvrir plusieurs entrées sans répéter les fonctions de test.
- Lisez la sortie pytest pour diagnostiquer les valeurs des paramètres qui passent ou échouent.
- Créez des appareils personnalisés pour partager la logique d’installation et de nettoyage.
- Choisissez les portées de configuration en fonction de la fréquence à laquelle elle doit être exécutée et du moment où le nettoyage doit avoir lieu.
- Placez les éléments de test partagés dans
conftest.pypour que les tests situés dans le même répertoire et ses sous-répertoires puissent les utiliser sans importations explicites. - Utilisez des éléments intégrés, notamment
tmp_pathpour les fichiers temporaires et pour lesmonkeypatchmodifications d’état délimitées, pour isoler les tests qui dépendent de fichiers, de variables d’environnement, d’importations ou d’état externe.
Pour plus d’informations, consultez la documentation pytest pour paramétrer les tests, les appareils, les appareils intégrés, les répertoires temporaires et les fichiers, la configuration de style xUnit et monkeypatch.