name font python testcase nosetests

font - subplot python title



¿Cómo especifico una prueba única en un archivo con pruebas nasales? (5)

Debe especificarlo de la siguiente manera: nosetests <file>:<Test_Case>.<test_method> , o

nosetests test_web.py:TestWeb.test_checkout

Ver los documentos

Tengo un archivo llamado test_web.py que contiene una clase TestWeb y muchos métodos llamados como test_something ().

Puedo ejecutar todas las pruebas en la clase de esta manera:

$ nosetests test_web.py ... ====================================================================== FAIL: checkout test ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/me/path/here/test_web.py", line 187, in test_checkout ...

Pero parece que no puedo realizar pruebas individuales. Estos me dan errores de "No hay tal prueba" cuando se ejecutan en la misma PWD:

$ nosetests test_web.py:test_checkout $ nosetests TestWeb:test_checkout

¿Qué podría estar mal aquí?


En mis pruebas, las pruebas de especificación con nombres de módulos no funcionan

Debe especificar la ruta real a .py :

nosetests /path/to/test/file.py:test_function

Esto con la nose==1.3.7


Especificar nombres en la línea de comando como las otras respuestas sugieren que funciona y es útil. Sin embargo, cuando estoy escribiendo pruebas, a menudo me parece que quiero ejecutar solo la prueba en la que estoy trabajando, y los nombres que tendría que escribir en la línea de comandos son bastante largos y engorrosos para escribir. . En tal caso, prefiero usar un decorador y bandera personalizados.

wipd ("trabajo en progreso decorador") de esta manera:

from nose.plugins.attrib import attr def wipd(f): return attr(''wip'')(f)

Esto define un decorador @wipd que establecerá el atributo wip en los objetos que decora. Por ejemplo:

import unittest class Test(unittest.TestCase): @wipd def test_something(self): pass

Luego -a wip se puede usar -a wip en la línea de comando para limitar la ejecución de la prueba a las marcadas con @wipd .

Nota sobre los nombres ...

Estoy usando el nombre @wipd para el decorador en lugar de @wip para evitar este tipo de problema:

import unittest class Test(unittest.TestCase): from mymodule import wip @wip def test_something(self): pass def test_something_else(self): pass

La import hará que el decorador wip miembro de la clase y se seleccionarán todas las pruebas de la clase. El complemento attrib comprueba la clase principal de un método de prueba para ver si el atributo seleccionado también existe allí, y los atributos que attrib crea y prueba no existen en un espacio segregado. Por lo tanto, si prueba con -a foo y su clase contiene foo = "platypus" , entonces todas las pruebas de la clase serán seleccionadas por el complemento.


Para ejecutar múltiples pruebas específicas, puede agregarlas a la línea de comando, separadas por espacio.

nosetests test_web.py:TestWeb.test_checkout test_web.py:TestWeb.test_another_checkout


También puedes especificar un módulo:

nosetests tests.test_integration:IntegrationTests.test_user_search_returns_users