référence de fixation de nez – Test Python

By | août 9, 2019

Expert Python

Je vais couvrir les montages d'installation et de démontage de nez au niveau du package, du module, de la classe, de la méthode et de la fonction.
Il ne s’agit pas de savoir quel code mettre dans les fixtures, mais juste de la syntaxe et du flux.
Et un peu sur les conventions de nommage.

Bien que j'ai parlé des rencontres dans l'introduction du nez, je pense que ce post fonctionnera mieux comme référence.

Contenu

Méthode vs fonction

Dans la discussion ci-dessous, je distingue une différence entre méthode et une fonction.
Je suis une convention de la documentation python:

En d’autres termes, si une fonction n’est PAS dans une classe, c’est un une fonction.
Si c’est dans une classe, c’est un méthode.

Appareils au niveau du paquet

Ajoutez les fonctions "setup_package ()" et "teardown_package ()" au "__init__.py" d’un paquet.
"Setup_package" sera exécuté avant tous les modules de test du paquet.
"Teardown_package" sera exécuté une fois que tous les modules auront été exécutés (si la configuration a réussi).

Appareils au niveau du module

Les fixtures de module supportent l'exécution de tout dans le module (classes de test et fonctions de test).
Ces fonctions ne fonctionnent qu'une fois chacune.

Appareils de niveau de classe

Les fixtures de classe encadrent l'exécution de tout dans une classe.
Ces fonctions ne fonctionnent qu'une fois chacune.

Appareils de niveau méthode méthode

Les fixtures de méthode de classe encadrent l'exécution de chacune des méthodes de test de la classe.
Ces fonctions s'exécutent plusieurs fois, une fois pour chaque méthode de test.

Appareils de niveau de fonction

Les montages au niveau fonctionnel sont l’essentiel du peloton.
Nose ne détecte aucune convention de dénomination pour cela.
Tout est fait avec le décorateur ‘@with_setup’, qui doit être inclus à partir de ‘nez.tools’.

Cela vous permet d’avoir différents appareils pour différents tests.

Cependant, veuillez choisir des noms qui ont du sens.
Cela vous permet également d’oublier d’ajouter le décorateur, alors faites attention.

Exemple complet

__init__.py

test_using_classes.py

test_using_functions.py

Flux de contrôle

Je mets les fichiers dans un testNoseFixtures annuaire.
Lancer les tests avec -s afin que je puisse voir la sortie, produit ce qui suit.

Noms alternatifs

Nose oublie assez les conventions de nommage pour les fixtures.
Je vais énumérer les noms alternatifs pour les différents appareils.
Cependant, je vous encourage fortement à utiliser les noms énumérés ci-dessus.
Les noms énumérés ci-dessus sont, à mon avis, les plus faciles à lire.
La seule exception est setup_function / teardown_function, puisque celles-ci sont éventuellement personnalisées pour chaque fonction de test, utilisez ce que vous voulez.

setup_package
setup, setUp ou setUpPackage
teardown_package
démantèlement, tearDown ou tearDownPackage
setup_module
setup, setUp ou setUpModule
teardown_module
démantèlement, tearDown ou tearDownModule
setup_class
setupClass, setUpClass, setupAll ou setUpAll
teardown_class
teardownClass, tearDownClass, teardownAll ou tearDownAll.
setup (fixtures de méthodes de classe)
installer
démontage (fixtures de méthode de classe)
abattre
setup_function / teardown_function
peut être nommé n'importe quoi, puisqu'il est attaché à une fonction avec '@with_setup'