Ajustes útiles para RSpec con parallel_tests

Guía práctica para parallel_tests con RSpec en CI: fija una semilla compartida y muestra qué archivos ejecuta cada proceso y su orden, para acelerar la depuración de fallos intermitentes.

4 sept 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Este artículo describe ajustes prácticos para ejecutar pruebas con parallel_tests en RSpec, especialmente útiles para reproducir e investigar fallos intermitentes que aparecen en integraciones continuas CI.

Qué es parallel_tests. En CI solemos paralelizar RSpec para aprovechar mejor la CPU y acelerar la retroalimentación. La gema parallel_tests facilita repartir archivos de pruebas entre procesos y sacar partido a equipos multinúcleo. Aunque la guía de la gema cubre la configuración básica, el paralelismo puede volver más difícil depurar pruebas frágiles o intermitentes.

TIP 1. Fija la semilla de RSpec en todos los procesos. RSpec utiliza una semilla para aleatorizar el orden de ejecución y así detectar dependencias ocultas entre pruebas. En paralelo, cada proceso elige su propia semilla, lo que complica reproducir fallos. Para depurar, conviene que todos los procesos compartan la misma semilla. No se trata de usar siempre una fija, sino de generar un número aleatorio una sola vez y pasarlo a todos los procesos con la opción --seed. Sin esta opción, RSpec decide la semilla internamente usando rand 0xFFFF tal como se observa en el código de RSpec que define la semilla. Por ello, si suministras el mismo valor por --seed alineas el orden de ejecución entre procesos y puedes reproducir el mismo fallo localmente. Buenas prácticas adicionales incluyen imprimir la semilla en el log de CI y permitir relanzar la build reutilizando dicha semilla.

TIP 2. Muestra qué archivos ejecuta cada proceso. Cuando lanzas parallel_rspec, la herramienta reparte archivos entre procesos, pero el log por defecto no deja claro qué proceso ejecuta qué archivos. Añade en tu configuración de RSpec un gancho before suite que imprima el identificador de proceso y la lista de archivos que ese proceso va a ejecutar. Puedes obtener esa lista leyendo config.files_to_run y normalizándola a rutas relativas del proyecto para que el log sea claro y reproducible. Con esta simple salida podrás tomar el conjunto exacto de archivos que corrió el proceso que falló y relanzarlo localmente con la misma semilla.

TIP 3. Muestra el orden real de ejecución de archivos en cada proceso. Muchos fallos dependen del orden entre archivos, no solo del conjunto asignado. Aun con semilla y lista asignada, desconoces el orden final. Dentro del mismo gancho before suite puedes derivar el orden real leyendo config.world.ordered_example_groups y extrayendo file_path, y luego imprimirlo. Así el log de CI reflejará el orden preciso. Si el fallo ocurrió en un archivo concreto, bastará con ejecutar localmente con la misma semilla únicamente los archivos previos y el que falla, reduciendo tiempo de reproducción. Ten en cuenta que world y ordered_example_groups forman parte de APIs internas sujetas a cambios sin aviso, según la implementación de RSpec documentada en World y en Core. Si usas el formateador progress verás secuencias de puntos y la letra F para fallos, pero sin el orden de archivos puede ser difícil acotar la causa; por eso volcar el orden ayuda a reducir intentos.

Consejos operativos. Centraliza la generación de la semilla en el pipeline y propágala a todos los workers, registra la semilla y el orden de archivos en los logs de CI, y crea una tarea de reintento que ejecute únicamente el subconjunto mínimo de archivos hasta el primero que falla. Esta combinación acelera de forma notable la investigación de inestabilidades.

Conclusión. parallel_tests es excelente para acelerar CI, pero su paralelismo puede complicar la depuración de pruebas frágiles. Con una semilla compartida, visibilidad de archivos por proceso y del orden real de ejecución, reproducir y entender fallos se vuelve sistemático y mucho más rápido.

En Q2BSTUDIO ayudamos a equipos de ingeniería a construir pipelines de calidad y productos robustos. Somos una empresa de desarrollo de software con foco en aplicaciones a medida y software a medida, automatización de procesos, inteligencia artificial e ia para empresas con agentes IA, ciberseguridad y pentesting, servicios cloud aws y azure, y servicios inteligencia de negocio con power bi. Si necesitas un socio técnico para impulsar tu plataforma de pruebas, evaluar arquitectura o crear aceleradores internos, conoce nuestro enfoque en desarrollo de aplicaciones y software multiplataforma y cómo optimizamos ciclos de entrega automatizando tareas clave en automatización de procesos.

Palabras clave sugeridas para mejorar el posicionamiento en buscadores relacionadas con este tema y nuestros servicios de valor añadido incluyen aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat