UnitTest Framework - Manejo de señales

La opción -c / - catch de la línea de comandos para unittest proporciona un manejo más eficiente de control-C durante una ejecución de prueba, junto con la catchbreakparámetro. Con el comportamiento de captura de pausa habilitado, control-C permitirá que se complete la prueba que se está ejecutando actualmente, y la ejecución de la prueba terminará e informará todos los resultados hasta el momento. Un segundo control-c generará un KeyboardInterrupt de la forma habitual.

Si se llama al controlador unittest pero el controlador signal.SIGINT no está instalado, entonces llama al controlador predeterminado. Este será normalmente el comportamiento esperado por el código que reemplaza un controlador instalado y le delega. Para las pruebas individuales que necesitan el manejo unittest control-c deshabilitado, se puede usar el decorador removeHandler ().

Las siguientes funciones de utilidad habilitan la funcionalidad de manejo de control-c dentro de los marcos de prueba:

unittest.installHandler ()

Instale el controlador control-c. Cuando unasignal.SIGINT se recibe todos los resultados registrados y se llama a TestResult.stop ().

unittest.registerResult (resultado)

Registrar un TestResultobjeto para el manejo de control-c. El registro de un resultado almacena una referencia débil a él, por lo que no evita que el resultado sea recolectado como basura.

unittest.removeResult (resultado)

Eliminar un resultado registrado. Una vez que se ha eliminado un resultado, TestResult.stop () ya no se llamará en ese objeto de resultado en respuesta a un control-c.

unittest.removeHandler (función = Ninguna)

Cuando se llama sin argumentos, esta función elimina el controlador control-c si se ha instalado. Esta función también se puede utilizar como decorador de pruebas para eliminar temporalmente el controlador mientras se ejecuta la prueba.

Ejecutor de prueba GUI

El módulo unittest se instala para descubrir y ejecutar pruebas de forma interactiva. Esta utilidad, un script de Python 'inittestgui.py' usa el módulo Tkinter, que es un puerto de Python para el kit de herramientas de gráficos TK. Ofrece una GUI fácil de usar para el descubrimiento y la ejecución de pruebas.

Python unittestgui.py

Haga clic en el botón 'Descubrir pruebas'. Aparece un pequeño cuadro de diálogo donde puede seleccionar el directorio y los módulos desde los que se ejecutará la prueba.

Finalmente, haga clic en el botón de inicio. Las pruebas se descubrirán a partir de la ruta seleccionada y los nombres de los módulos, y el panel de resultados mostrará los resultados.

Para ver los detalles de la prueba individual, seleccione y haga clic en prueba en el cuadro de resultados -

Si no encuentra esta utilidad en la instalación de Python, puede obtenerla en la página del proyecto http://pyunit.sourceforge.net/.

Una utilidad similar basada en el kit de herramientas wxpython también está disponible allí.