Test du nez - Cadre
Le projet de nez est sorti en 2005, l'année d'après py.testa reçu sa forme moderne. Il a été écrit par Jason Pellerin pour prendre en charge les mêmes idiomes de test que py.test, mais dans un package plus facile à installer et à maintenir.
le nose le module peut être installé à l'aide de l'utilitaire pip
pip install nose
Cela installera le module nose dans la distribution Python actuelle ainsi que nosetest.exe, ce qui signifie que le test peut être exécuté en utilisant cet utilitaire ainsi qu'en utilisant le commutateur –m.
C:\python>nosetests –v test_sample.py
Or
C:\python>python –m nose test_sample.py
nose collecte les tests de unittest.TestCasesous-classes, bien sûr. Nous pouvons également écrire des fonctions de test simples, ainsi que des classes de test qui ne sont pas des sous-classes d'unittest.TestCase. nose fournit également un certain nombre de fonctions utiles pour l'écriture de tests chronométrés, les tests d'exceptions et d'autres cas d'utilisation courants.
nosecollecte les tests automatiquement. Il n'est pas nécessaire de collecter manuellement les cas de test dans des suites de tests. L'exécution des tests est réactive, carnose commence à exécuter les tests dès que le premier module de test est chargé.
Comme pour le module unittest, nose prend en charge les fixtures au niveau du package, du module, de la classe et du cas de test, de sorte qu'une initialisation coûteuse peut être effectuée aussi rarement que possible.
Utilisation de base
Considérons nosetest.py comme le script utilisé précédemment -
# content of nosetest.py
def func(x):
return x + 1
def test_answer():
assert func(3) == 5
Afin d'exécuter le test ci-dessus, utilisez la syntaxe de ligne de commande suivante -
C:\python>nosetests –v nosetest.py
La sortie affichée sur la console sera la suivante -
nosetest.test_answer ... FAIL
================================================================
FAIL: nosetest.test_answer
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\nose\case.py", line 198, in runTest
self.test(*self.arg)
File "C:\Python34\nosetest.py", line 6, in test_answer
assert func(3) == 5
AssertionError
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (failures = 1)
nose peut être intégré à DocTest en utilisant with-doctest option dans la ligne de commande ci-dessus.
\nosetests --with-doctest -v nosetest.py
Vous pouvez utiliser nose dans un script de test -
import nose
nose.main()
Si vous ne souhaitez pas que le script de test se termine avec 0 en cas de succès et 1 en cas d'échec (comme unittest.main), utilisez plutôt nose.run () -
import nose
result = nose.run()
Le résultat sera vrai si l'exécution du test réussit, ou faux s'il échoue ou déclenche une exception non interceptée.
noseprend en charge les fixtures (méthodes de configuration et de démontage) au niveau du package, du module, de la classe et du test. Comme pour les fixtures py.test ou unittest, la configuration s'exécute toujours avant tout test (ou collection de tests pour les packages et modules de test); le démontage s'exécute si la configuration est terminée avec succès, quel que soit l'état du test.