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 efficacement des tests unitaires à partir d'un répertoire de tests distinct en Python ?

Linda Hamilton
Libérer: 2024-11-27 03:04:13
original
797 Les gens l'ont consulté

How to Efficiently Run Unit Tests from a Separate Test Directory in 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
Copier après la connexion

Vous pouvez exécuter les tests avec :

$ cd new_project
$ python -m unittest test_antigravity
Copier après la connexion

Pour une structure de répertoires comme celle fournie :

new_project
├── antigravity
│   ├── __init__.py
│   └── antigravity.py
└── test
    ├── __init__.py
    └── test_antigravity.py
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal