Tener pruebas en múltiples archivos

Estoy usando el marco de las pirámides para un proyecto grande y me parece complicado tener todas mis pruebas en un archivo tests.py . Así que he decidido crear un directorio que contenga archivos con mis pruebas. El problema es, no tengo idea, cómo decir a las pirámides, para ejecutar mis pruebas desde este directorio.

Estoy ejecutando las pruebas usando python setup.py test -q .

Pero esto, por supuesto, no funciona, después de mover mis pruebas al directorio de pruebas. ¿Qué hacer para que funcione?

Primero, debe asegurarse de que las tests no sean solo un directorio, sino un paquete de Python creando un __init__.py en él.

También debe asegurarse de nombrar los módulos en su paquete de tests test_something.py .

La mayoría de los corredores de prueba, como parte de su descubrimiento de prueba, buscan un módulo o paquete llamado tests , los módulos en ese paquete que comienzan con test_ y esperan que los métodos de prueba (en TestCase subclases TestCase ) comiencen con test_ .

El módulo unittest describe los corredores de prueba como:

Un corredor de prueba es un componente que organiza la ejecución de pruebas y proporciona el resultado al usuario. El corredor puede usar una interfaz gráfica, una interfaz de texto o devolver un valor especial para indicar los resultados de la ejecución de las pruebas.

Hay un montón de marcos de prueba diferentes y, por lo tanto, corredores de prueba, la mayoría de las pruebas de unidad de prueba se extienden de alguna manera y buscan subclases de prueba de unittest.TestCase . Pueden hacer diferentes tipos de descubrimiento de prueba , presentar los resultados de una manera diferente o reunir cobertura de código mientras se ejecutan las pruebas.

En cuanto a las importaciones relativas: realmente debes tratar de evitarlas. Hacen que sea más difícil mover el código (como se acaba de notar) y disminuyen la legibilidad de las importaciones (¿desde dónde se importa el código?). Solo use from myproject.views import my_view – es mucho más claro donde viven las cosas

Finalmente he encontrado la manera de hacerlo. Acabo de crear el directorio llamado pruebas, poner mis pruebas dentro de él y crear el archivo vacío __init__.py . Necesitaba arreglar las importaciones relativas, o cometer errores extraños como:

AttributeError: 'module' object has no attribute 'tests'

Realmente no entiendo lo que está pasando, y cuál es el rol más nosetest aquí, pero funciona.

Si alguien es capaz de explicar esta problemática más profundamente, sería bueno.

Intenta usar la nose
http://nose.readthedocs.org/en/latest/
Si todos los archivos de prueba comienzan con “Prueba”, las pruebas de nosetests deben recogerlos y ejecutarlos.