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.
pytest-dev/pytest-randomly
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.
- Estrellas
- 724
- Forks
- 39
- Issues abiertos
- 5
- Último commit
- hace 5 días
¿Qué es?
pytest-randomly es un plugin para el framework de pruebas de Python pytest. De forma predeterminada, mezcla el orden de las pruebas por módulo, luego por clase y, por último, por función, lo que ayuda a detectar dependencias ocultas entre pruebas.
Cada ejecución de pruebas muestra una semilla aleatoria base que se puede volver a pasar con --randomly-seed (o con el valor last) para repetir el mismo orden y los mismos datos. Al inicio de cada fase de preparación, ejecución y limpieza de cada prueba, el plugin restablece la semilla global de random de Python a partir de esa semilla base y del ID de la prueba, para que las pruebas que dependen de datos aleatorios sigan siendo repetibles. También restablece el estado aleatorio de factory boy, Faker, Model Bakery, el generador heredado de NumPy y Polyfactory.
Ambos comportamientos se pueden desactivar mediante flags, y el plugin admite generadores aleatorios personalizados a través del punto de entrada pytest_randomly.random_seeder. Es compatible con pytest-xdist.
Funciones clave
- 01Mezcla el orden de las pruebas por módulo, clase y función
- 02Acepta una semilla con --randomly-seed, incluido 'last' para reutilizar la anterior
- 03Restablece las semillas aleatorias antes de la preparación, ejecución y limpieza de cada prueba
- 04Restablece el estado aleatorio de factory boy, Faker, Model Bakery, NumPy y Polyfactory
- 05Admite generadores aleatorios personalizados mediante un punto de entrada
- 06Es compatible con pytest-xdist
Casos de uso
- Detectar pruebas que solo pasan porque otra prueba se ejecutó antes
- Reproducir un fallo intermitente causado por el orden de las pruebas o por datos de prueba aleatorios
- Escribir pruebas con datos generados por factories que deban seguir siendo repetibles
- Depurar la contaminación entre pruebas volviendo a ejecutar un único módulo con la misma semilla
Inicio rápido
- 1
Instala el plugin con pip
python -m pip install pytest-randomly - 2
Ejecuta pytest; el plugin mezcla las pruebas automáticamente e imprime la semilla
pytest
Antes de usarlo
- Requiere Python 3.11 a 3.15 y el ejecutor de pruebas pytest.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es pytest-randomly?
- 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. pytest-randomly es un plugin para el framework de pruebas de Python pytest. De forma predeterminada, mezcla el orden de las pruebas por módulo, luego por clase y, por último, por función, lo que ayuda a detectar dependencias ocultas entre pruebas.
- ¿pytest-randomly es gratuito? ¿Qué licencia tiene?
- pytest-randomly es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿pytest-randomly sigue mantenido?
- Mantenimiento activo. El último commit de pytest-randomly fue el 2 nov 2026.
- ¿Para qué puedo usar pytest-randomly?
- Detectar pruebas que solo pasan porque otra prueba se ejecutó antes Reproducir un fallo intermitente causado por el orden de las pruebas o por datos de prueba aleatorios Escribir pruebas con datos generados por factories que deban seguir siendo repetibles Depurar la contaminación entre pruebas volviendo a ejecutar un único módulo con la misma semilla
- ¿Cómo se instala pytest-randomly?
- Instala el plugin con pip: python -m pip install pytest-randomly Ejecuta pytest; el plugin mezcla las pruebas automáticamente e imprime la semilla: pytest
- ¿Dónde consigo pytest-randomly?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pytest-dev/pytest-randomly
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un plugin de pytest que ejecuta pruebas en paralelo en varias CPU y añade un modo para repetir las que fallan.
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.
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.
Paquete de Python que sube los resultados de coverage.py a coveralls.io para publicar estadísticas de cobertura en línea.