¿Cómo se pueden deshabilitar temporalmente las pruebas unitarias individuales cuando se usa el unittest
módulo en Python?
python
python-unittest
Coelhudo
fuente
fuente
@unittest.SkipTest
funciona y no@unittest.skip
@unittest.skip
también funciona bien.@unittest.skip
no funciona.Puede usar decoradores para deshabilitar la prueba que puede ajustar la función y evitar que la prueba de unidad googletest o python ejecute el caso de prueba.
Salida:
fuente
La última versión (2.7 - inédita) admite la omisión / desactivación de pruebas de esta manera . Puede obtener este módulo y usarlo en su instalación existente de Python. Probablemente funcionará.
Antes de esto, solía cambiar el nombre de las pruebas que quería salté a
xtest_testname
partirtest_testname
.Aquí hay un script rápido de elisp para hacer esto. Mi elisp está un poco oxidado, así que me disculpo de antemano por cualquier problema que tenga. No probado
fuente
Simplemente colocar
@unittest.SkipTest
decorador encima de la prueba es suficiente.fuente
unittest.skip
(sin razón) me da un error en Python 2 pero no en Python 3.Acabo de cambiar el nombre de un método de caso de prueba con un guión bajo: test_myfunc se convierte en _test_myfunc.
fuente
Los documentos para 2.1 no especifican un método de ignorar u omitir.
Por lo general, bloqueo el comentario cuando es necesario.
fuente
Centrándose en la parte "temporalmente deshabilitada" de la pregunta, la mejor respuesta depende un poco del caso de uso. El caso de uso que me trajo aquí es que estoy haciendo un desarrollo basado en pruebas en una función. En este proceso, escribo sucesivamente pruebas y a menudo uso puntos de interrupción en la función para la depuración. Si solo ejecuto todas las pruebas cada vez que ejecuto el corredor de prueba, termino deteniéndome en los puntos de interrupción para las pruebas que ya funcionan. Agregar "omitir" o mezclar el nombre de la prueba o algo así no es lo que quiero porque cuando termine de escribir la función, quiero que se ejecuten todas las pruebas. Si usara "skip", tendría que regresar y "unskip".
Para mi caso de uso, la solución se encuentra en el corredor de prueba, no en el código de prueba. Yo uso pytest . Con pytest, es fácil especificar una sola prueba desde la línea de comando:
(reemplace las tapas con sus valores).
Entiendo que esa pregunta era para python-unitest. No lo he usado en mucho tiempo. No me sorprendería si tuviera algo similar a Pytest. Si no, puede cambiar fácilmente a pytest. No necesita modificar su código. Simplemente instálelo y cambie su comando de corredor de prueba.
Además, uso PyCharm Pro. En la página que muestra mi código de prueba, hay un pequeño icono al lado de la definición para cada prueba. Puedo hacer clic en ese icono y ejecutar esa prueba individualmente.
fuente