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