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