Maison >développement back-end >Tutoriel Python >Comment exécuter efficacement des tests unitaires à partir d'un répertoire de tests distinct en Python ?
Comment exécuter des tests unitaires dans une structure de répertoires de tests commune
En Python, il est courant d'organiser les tests unitaires dans un répertoire de tests distinct . Cependant, cela soulève la question de savoir comment exécuter ces tests efficacement.
Problème
Lors de la tentative d'exécution de python test_antigravity.py à partir du répertoire de test, l'importation de le module antigravité échoue car le module n'est pas sur le chemin. Modifier le PYTHONPATH ou utiliser d'autres astuces de chemin de recherche peuvent être réalisables, mais ils manquent de simplicité, en particulier pour les utilisateurs qui souhaitent simplement vérifier les résultats du test.
Solution
La L'approche recommandée consiste à utiliser l'interface de ligne de commande unittest. Sa classe TestLoader ajoute le répertoire nécessaire à sys.path, résolvant ainsi le problème de chemin.
Par exemple, dans une structure de répertoires comme celle-ci :
new_project ├── antigravity.py └── test_antigravity.py
Vous pouvez exécuter les tests avec :
$ cd new_project $ python -m unittest test_antigravity
Pour une structure de répertoires comme celle fournie :
new_project ├── antigravity │ ├── __init__.py │ └── antigravity.py └── test ├── __init__.py └── test_antigravity.py
Vous pouvez obtenir des fonctionnalités similaires en déclarant à la fois antigravité et test sous forme de packages avec des fichiers __init__.py. Dans les modules de test, vous pouvez importer le package antigravity et ses modules comme d'habitude.
Exécuter des tests spécifiques
Pour exécuter un seul module de test, tel que test_antigravity.py :
$ cd new_project $ python -m unittest test.test_antigravity
Vous pouvez également exécuter des cas de tests individuels ou méthodes :
$ python -m unittest test.test_antigravity.GravityTestCase $ python -m unittest test.test_antigravity.GravityTestCase.test_method
Exécuter tous les tests
Vous pouvez utiliser la découverte de tests pour exécuter automatiquement tous les tests. Cela nécessite que les modules et packages de test soient nommés test*.py (personnalisable via l'indicateur -p ou --pattern) :
$ cd new_project $ python -m unittest discover
Pour les utilisateurs qui préfèrent la simplicité, vous pouvez leur demander d'exécuter ce qui suit commande :
To run the unit tests, do: $ python -m unittest discover
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!