Mi proyecto actual tiene una política de cobertura de código del 100% de sus pruebas unitarias. Nuestro servicio de integración continua no permitirá a los desarrolladores implementar código sin una cobertura del 100%.Prueba unitaria distribuida y cobertura de código en Python
Como el proyecto ha crecido, también lo ha hecho el tiempo para ejecutar el conjunto de pruebas completo. Si bien los desarrolladores normalmente ejecutan un subconjunto de pruebas relevantes para el código que están cambiando, generalmente realizarán una ejecución completa final antes de enviarla a CI, y el servidor de CI también ejecutará el conjunto de pruebas completo.
Las pruebas unitarias por su naturaleza son altamente paralelizables, ya que son autónomas y sin estado de prueba a prueba. Devuelven solo dos piezas de información: aprobado/reprobado y las líneas de código cubiertas. Una solución de mapa/reducir parece que funcionaría muy bien.
¿Existen marcos de prueba Python que ejecutarán pruebas en un grupo de máquinas con cobertura de código y combinar los resultados cuando terminen?
¿Encontró algo que hace lo que quería? –
@ stair314 Lamentablemente no. Hemos comprado algo más de tiempo optimizando nuestras pruebas unitarias y eliminando una gran cantidad de trabajo innecesario. También hemos agregado máquinas a nuestro clúster de CI para que podamos construir (y probar) en paralelo, pero aún ejecutamos todas las pruebas todas las veces. Con suerte, en algún momento podremos concentrar algunos esfuerzos de desarrollo en este problema. –