2012-09-11 6 views
6

Nariz supports test generators. Sin embargo, la documentación dice:Conflictos entre la unidad de prueba y los marcos de nariz

Tenga en cuenta que los generadores de método no se admiten en subclases unittest.TestCase

Esto significa que todos mis generadores de prueba deben estar fuera del marco unittest.

Pregunta: ¿Debo seguir utilizando el marco unittest para esas pruebas donde puedo? ¿O debería, por razones de coherencia, abandonar por completo el unittest?

¿Y por qué no admite nose generadores de prueba dentro de unittest.TestCase? Parece destruir la mayor ventaja de nose: que es una extensión en lugar de una reemplazo para unittest, lo que ofrece beneficios adicionales sin quitar ninguna de las funciones provistas por unittest. ¿O me estoy perdiendo algo?

Y una pregunta relacionada. Si abandono completamente el unittest, ¿debo poner mis pruebas en funciones globales o en alguna nueva jerarquía de clases?

+0

Necesitaba algo similar a los generadores de prueba y terminé usando [nariz-parametrizada] (https://github.com/wolever/nose-parameterized). La sintaxis del decorador era mucho más limpia, y funcionaba con 'unittest.TestCase'. –

Respuesta

5

En nariz, la falta de apoyo para las clases más originales de pruebas en unittest.TestCases es intencional - la idea era que la nariz debe recoger la prueba de unittest.TestCases exactamente como lo hace unittest. Probablemente esa fue una mala idea, pero es muy poco probable que cambie ahora.

Así que mientras no te importe estar un poco desanimado, te sugiero probar nose2. nose2 no discrimina y admite todo tipo de complementos de prueba para todo tipo de pruebas. Los documentos están en rtd: http://nose2.readthedocs.org/en/latest/index.html, descargas en pypi: http://pypi.python.org/pypi/nose2/0.4.1.

Cuestiones relacionadas