Maison >développement back-end >Tutoriel Python >Comment exécuter efficacement des tests unitaires en Python avec une structure de répertoires standard ?

Comment exécuter efficacement des tests unitaires en Python avec une structure de répertoires standard ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-26 06:40:11489parcourir

How to Effectively Run Unit Tests in Python with a Standard Directory Structure?

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!

Déclaration:
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