doctest



doctest es un módulo incluido en la biblioteca estándar del lenguaje de programación Python que permite la fácil generación de pruebas basadas en la salida del intérprete de Python estándar, cortada y pegada en cadenas de documentos .

Cuando se usa el shell de Python, el indicador principal: >>>, es seguido por nuevos comandos. El indicador secundario: ..., se usa cuando se continúan los comandos en varias líneas; y el resultado de ejecutar el comando se espera en las siguientes líneas. Una línea en blanco u otra línea que comience con el indicador principal se considera el final de la salida del comando.

El módulo doctest busca tales secuencias de solicitudes en una cadena de documentos, vuelve a ejecutar el comando extraído y compara la salida con la salida del comando dado en el ejemplo de prueba de cadenas de documentos.

La acción predeterminada al ejecutar doctests es que no se muestre ningún resultado cuando las pruebas pasen. Esto se puede modificar mediante las opciones del corredor de doctest. Además, doctest se ha integrado con el módulo de prueba unitaria de Python, lo que permite ejecutar doctests como casos de prueba unittest estándar. Los corredores de casos de prueba de Unittest permiten más opciones al ejecutar pruebas, como el informe de estadísticas de prueba, como las pruebas aprobadas y fallidas.

Aunque doctest no permite incrustar un programa Python en texto narrativo, sí permite incrustar ejemplos verificables en cadenas de documentos, donde las cadenas de documentos pueden contener otro texto. A su vez, las cadenas de documentos se pueden extraer de archivos de programa para generar documentación en otros formatos, como HTML o PDF. Se puede crear un archivo de programa que contenga la documentación, las pruebas, así como el código y las pruebas que se verifican fácilmente con el código. Esto permite que el código, las pruebas y la documentación evolucionen juntos.

Las pruebas de documentación son adecuadas para proporcionar una introducción a una biblioteca demostrando cómo se usa la API.