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 read • Q2BSTUDIO Team

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat