Exécuter des tests unitaires avec une structure de répertoire typique
La structure de module commune de Python implique souvent de séparer les tests unitaires dans un répertoire de test dédié, comme indiqué ci-dessous :
new_project/ antigravity/ antigravity.py test/ test_antigravity.py setup.py etc.
L'exécution de ces tests nécessite plus que la simple exécution de python test_antigravity.py à partir du répertoire de test. Étant donné que l'antigravité n'est pas sur le chemin d'importation, cette approche échouera.
Au lieu de cela, le moyen le plus simple d'exécuter les tests consiste à utiliser l'interface de ligne de commande unittest. Cet utilitaire ajoutera automatiquement le répertoire à sys.path, rendant les modules accessibles pour l'importation.
Pour une structure de répertoires telle que :
new_project ├── antigravity.py └── test_antigravity.py
Exécutez les tests comme suit :
$ cd new_project $ python -m unittest test_antigravity
Pour une structure comme la vôtre, avec des packages dans les répertoires antigravity et test, vous pouvez importer des modules dans antigravity comme d'habitude dans test modules :
# import the package import antigravity # import the antigravity module from antigravity import antigravity # or an object inside the antigravity module from antigravity.antigravity import my_object
Exécuter des tests spécifiques :
Pour exécuter un module de test spécifique (par exemple, test_antigravity.py) :
$ cd new_project $ python -m unittest test.test_antigravity
Vous pouvez également exécuter un seul scénario ou méthode de test :
$ python -m unittest test.test_antigravity.GravityTestCase $ python -m unittest test.test_antigravity.GravityTestCase.test_method
Tout exécuter Tests :
Utilisez la découverte de tests pour découvrir et exécuter automatiquement tous les tests :
$ cd new_project $ python -m unittest discover
Cela exécutera tous les modules test*.py du package de test. Pour plus d'informations, reportez-vous à la documentation officielle sur la découverte.
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!