Mis experiencias involucran CruiseControl.NET y Team Foundation Build. Soy un desarrollador de .NET. Estos provienen de mis experiencias, y solo incluyen las experiencias donde tuvimos pruebas como parte del proceso de construcción, por lo que si no coinciden con su entorno, lo siento.
También me pregunto si es necesario tener un motor específico para ejecutar las pruebas, o si es suficiente tenerlos integrados en nuestro motor de integración continua
Si está realizando una compilación en cada registro, es posible que se activen las compilaciones antes de que la compilación anterior termine de ejecutarse. ¿Cómo quieres manejar situaciones como esta? Por ejemplo, si tarda 30 minutos en ejecutar todo el conjunto de pruebas y el código se verifica cada 15 minutos, ¿desea omitir algunas compilaciones? ¿Saltar algunas pruebas? ¿Apilarlos, construirlos en orden y volver a decirle a Bob que rompió la construcción con su registro hace 5 horas?
Team Foundation Build puede usar múltiples núcleos para compilaciones y pruebas con 2010 (las versiones anteriores solo podían usar múltiples núcleos para compilaciones C ++). CruiseControl.NET puede ejecutar subprocesos separados, pero al leer la documentación , parece que cada proyecto puede estar en su propio subproceso, pero que no puede tener múltiples subprocesos por proyecto (puedo estar equivocado). Nunca hemos tenido una máquina multinúcleo para compilaciones en los entornos en los que he trabajado, por lo que no puedo hablar de cuán buenas / justas / malas son (o lo equivocado que soy).
En un empleador anterior, incluimos scripts de Python en la compilación, pero no teníamos ninguna prueba configurada para probar Python. NANT se utilizó para los componentes .NET.
También me pregunto si es necesario tener un motor específico para ejecutar las pruebas.
Nunca tuve tiempo para hacerlo, pero en un empleador anterior (vendimos software "retráctil"), teníamos muchos errores que eran específicos del sistema operativo (y a veces específicos del paquete de servicio), por lo que uno de mis objetivos era configurar varias pruebas Máquinas con diferentes sistemas operativos (32 + 64 bits y todos los sabores de Windows de escritorio y servidor desde XP en adelante). Las máquinas de compilación eran máquinas WinXP simples o antiguas (o virtuales) porque ese era todo el "hardware" que nos permitían los gerentes. En cambio, todas las pruebas se ejecutaron en la máquina de compilación. También configuramos suites de validación como colecciones de pruebas unitarias, aunque no se ejecutaron para actualizaciones menores.