Un plugin de pytest que ejecuta pruebas en paralelo en varias CPU y añade un modo para repetir las que fallan.
Erotemic/xdoctest
Paquete de Python que encuentra y ejecuta el código de ejemplo de los docstrings; reescribe el módulo integrado doctest con un parser basado en AST.
- Estrellas
- 221
- Forks
- 18
- Issues abiertos
- 29
- Último commit
- hace 3 días
¿Qué es?
Xdoctest ejecuta doctests, es decir, código de ejemplo escrito dentro de docstrings de Python. Es una reescritura del módulo doctest de la biblioteca estándar que sustituye el parser basado en expresiones regulares por otro basado en el módulo ast de Python. Así, los ejemplos pueden llevar el prefijo >>> en todas las líneas y usar cadenas multilínea sin prefijos especiales.
Puedes ejecutarlo desde la línea de comandos con xdoctest sobre la ruta de un módulo o paquete, o mediante pytest activando la opción --xdoctest. El runner nativo permite listar los doctests, ejecutarlos todos o ejecutar el doctest de una función concreta por nombre. También puede ejecutar funciones sin argumentos por nombre. El parser admite bloques Example al estilo de Google y bloques >>> de formato libre.
De forma predeterminada, la comprobación de got/want es permisiva: ignora las diferencias de espacios en blanco, usa la coincidencia ELLIPSIS y considera que hay éxito si coincide la salida impresa o el valor final. En las pruebas sin una instrucción want, basta con que el código se ejecute sin errores, por lo que se pueden usar instrucciones assert directamente para hacer comprobaciones.
Funciones clave
- 01Analiza doctests con el módulo ast de Python en lugar de expresiones regulares.
- 02Permite usar el prefijo >>> en todas las líneas, sin tener que distinguir entre líneas PS1 y PS2.
- 03Se integra con pytest mediante la opción --xdoctest.
- 04Incluye un runner nativo de línea de comandos que permite listar los doctests, ejecutarlos todos o ejecutar uno concreto.
- 05Admite los estilos de análisis de doctests de Google y de formato libre.
Casos de uso
- Mantener los ejemplos de uso de los docstrings ejecutables en CI junto con las pruebas unitarias.
- Comprobar que los ejemplos de la documentación de un paquete de Python siguen ejecutándose después de cambiar el código.
- Escribir rápidamente ejemplos de entrada en un docstring mientras se desarrolla una función.
Inicio rápido
- 1
Instala xdoctest desde PyPI
pip install xdoctest - 2
Ejecuta todos los doctests de tu paquete o módulo
python -m xdoctest /path/to/your/pkg-or-module.py
Antes de usarlo
- Requiere Python 3.8 o una versión posterior.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es xdoctest?
- Paquete de Python que encuentra y ejecuta el código de ejemplo de los docstrings; reescribe el módulo integrado doctest con un parser basado en AST. Xdoctest ejecuta doctests, es decir, código de ejemplo escrito dentro de docstrings de Python. Es una reescritura del módulo doctest de la biblioteca estándar que sustituye el parser basado en expresiones regulares por otro basado en el módulo ast de Python. Así, los ejemplos pueden llevar el prefijo >>> en todas las líneas y usar cadenas multilínea sin prefijos especiales.
- ¿xdoctest es gratuito? ¿Qué licencia tiene?
- xdoctest es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿xdoctest sigue mantenido?
- Mantenimiento activo. El último commit de xdoctest fue el 4 nov 2026.
- ¿Para qué puedo usar xdoctest?
- Mantener los ejemplos de uso de los docstrings ejecutables en CI junto con las pruebas unitarias. Comprobar que los ejemplos de la documentación de un paquete de Python siguen ejecutándose después de cambiar el código. Escribir rápidamente ejemplos de entrada en un docstring mientras se desarrolla una función.
- ¿Cómo se instala xdoctest?
- Instala xdoctest desde PyPI: pip install xdoctest Ejecuta todos los doctests de tu paquete o módulo: python -m xdoctest /path/to/your/pkg-or-module.py
- ¿Dónde consigo xdoctest?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Erotemic/xdoctest
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Plugin de pytest que permite escribir funciones de prueba como corutinas y usar await directamente para probar código con asyncio.
Un framework BDD que ejecuta archivos de funcionalidades Gherkin como pruebas de pytest, sin necesidad de un ejecutor de pruebas independiente.
Una biblioteca de Python que graba las interacciones HTTP durante las pruebas y las reproduce después para que se ejecuten sin conexión y de forma determinista.
Un plugin de pytest que vuelve a ejecutar solo las pruebas afectadas por los cambios recientes en el código, con un modo de vigilancia continua opcional.
Un plugin de pytest que mezcla el orden de las pruebas y restablece las semillas aleatorias para reproducir fallos causados por el orden o por datos aleatorios.