Pruebas de nariz: marco

El proyecto de la nariz se lanzó en 2005, el año siguiente py.testrecibió su apariencia moderna. Fue escrito por Jason Pellerin para admitir los mismos modismos de prueba en los que py.test fue pionero, pero en un paquete que es más fácil de instalar y mantener.

los nose El módulo se puede instalar con la ayuda de la utilidad pip

pip install nose

Esto instalará el módulo nose en la distribución actual de Python, así como un nosetest.exe, lo que significa que la prueba se puede ejecutar con esta utilidad y también con el modificador –m.

C:\python>nosetests –v test_sample.py
Or
C:\python>python –m nose test_sample.py

nose recopila pruebas de unittest.TestCasesubclases, por supuesto. También podemos escribir funciones de prueba simples, así como clases de prueba que no son subclases de unittest.TestCase. nose también proporciona una serie de funciones útiles para escribir pruebas cronometradas, pruebas de excepciones y otros casos de uso comunes.

noserecopila las pruebas automáticamente. No es necesario recopilar manualmente los casos de prueba en conjuntos de pruebas. La ejecución de pruebas responde, ya quenose comienza a ejecutar pruebas tan pronto como se carga el primer módulo de prueba.

Al igual que con el módulo unittest, nose admite accesorios a nivel de paquete, módulo, clase y caso de prueba, por lo que la inicialización costosa se puede realizar con la menor frecuencia posible.

Uso básico

Consideremos que nosetest.py es similar al script utilizado anteriormente:

# content of nosetest.py
def func(x):
   return x + 1
   
def test_answer():
   assert func(3) == 5

Para ejecutar la prueba anterior, use la siguiente sintaxis de línea de comando:

C:\python>nosetests –v nosetest.py

La salida que se muestra en la consola será la siguiente:

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 se puede integrar con DocTest usando with-doctest opción en la línea de comando bove.

\nosetests --with-doctest -v nosetest.py

Puedes utilizar nose en un script de prueba -

import nose
nose.main()

Si no desea que el script de prueba salga con 0 en caso de éxito y 1 en caso de error (como unittest.main), use nose.run () en su lugar -

import nose
result = nose.run()

El resultado será verdadero si la ejecución de la prueba es satisfactoria o falso si falla o genera una excepción no detectada.

noseadmite accesorios (métodos de instalación y desmontaje) a nivel de paquete, módulo, clase y prueba. Al igual que con los dispositivos py.test o unittest, la configuración siempre se ejecuta antes de cualquier prueba (o colección de pruebas para paquetes y módulos de prueba); el desmontaje se ejecuta si la instalación se ha completado correctamente, independientemente del estado de la ejecución de prueba.