Maison >développement back-end >Tutoriel Python >Comment puis-je exécuter efficacement des tests unitaires à partir d'un répertoire standard « test » en Python ?
Exécuter des tests unitaires avec une structure de répertoires de tests standard
De nombreux projets Python adoptent une structure de répertoires typique dans laquelle les tests unitaires sont conservés dans un " "test". Cela soulève la question : comment exécuter ces tests efficacement ?
Le problème et le problème
L'exécution directe de test_antigravity.py à partir du répertoire "test" échouera car le Le module antigravité n'est pas sur le chemin du système. La modification de PYTHONPATH et d'astuces similaires liées au chemin n'est peut-être pas une solution optimale. Copier-coller le fichier de test dans un autre répertoire semble inefficace.
La solution : utiliser l'interface de ligne de commande unittest
L'approche la plus recommandée consiste à utiliser la commande unittest interface de ligne. Il ajoute automatiquement le répertoire actuel au sys.path, permettant une importation transparente du module testé.
Pour une structure comme :
new_project └── test_antigravity.py
Exécutez simplement :
$ python -m unittest test_antigravity
Pour une Structure Comme :
new_project ├── antigravity │ └── antigravity.py └── test ├── test_antigravity.py
Vous pouvez exécuter un seul module de test :
$ python -m unittest test.test_antigravity
Exécuter un seul test :
$ python -m unittest test.test_antigravity.GravityTestCase
Exécuter une seule méthode de test :
$ python -m unittest test.test_antigravity.GravityTestCase.test_method
Exécuter tous les tests :
$ python -m unittest discover $ # Also works without discover for Python 3 $ # as suggested by Burrito in the comments $ python -m unittest
Cette approche est pratique pour aux utilisateurs d'exécuter des tests unitaires en suivant simplement l'instruction : "Pour exécuter les tests unitaires, faites X."
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!