Tengo una aplicación Pylons 1.0 con un montón de pruebas en el directorio test / funcional. Estoy obteniendo resultados de pruebas extraños y solo quiero ejecutar una sola prueba. La documentación de la nariz dice que debería poder pasar un nombre de prueba en la línea de comando pero obtengo ImportErrors sin importar lo que haga
Por ejemplo:
nosetests -x -s sometestname
Da:
Traceback (most recent call last):
File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/loader.py", line 371, in loadTestsFromName
module = resolve_name(addr.module)
File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/util.py", line 334, in resolve_name
module = __import__('.'.join(parts_copy))
ImportError: No module named sometestname
Me sale el mismo error para
nosetests -x -s appname.tests.functional.testcontroller
¿Cual es la sintaxis correcta?
appname.tests.functional.test_controller.name_of_test_method
.module.path:ClassNameInFile.method_name
, es decir, con dos puntos que separen la ruta del módulo / archivo y los objetos dentro del archivo.module.path
es la ruta relativa al archivo (por ejemplomy_tests.py:ClassNameInFile.method_name
), no es el camino que usaría en unimport
comunicadoPara mí, usando Nosetests 1.3.0, estas variantes están funcionando (pero asegúrese de tener
__init__.py
en su carpeta de pruebas):Tenga en cuenta que los dos puntos entre el nombre del módulo y el nombre de la clase.
fuente
Tengo que agregar la extensión de archivo ".py", es decir,
Quizás esto se deba a que no tengo ninguna clase en el archivo. Sin la
.py
nariz se quejaba:Y esto aunque tengo un
__init__.py
en la carpeta/path_to/
.fuente
Escribí este pequeño script, basado en las respuestas anteriores:
fuente
Lo siguiente me funcionó bien:
Tenga en cuenta que mis pruebas no estaban en una clase. Los métodos de prueba estaban en un solo archivo.
fuente