NAnt con las pruebas de integración de DB, y eventualmente la integración continua

StackOverflow https://stackoverflow.com/questions/219156

  •  03-07-2019
  •  | 
  •  

Pregunta

He estado explorando diferentes estrategias para ejecutar pruebas de integración dentro de algunos scripts de compilación de Nant. Por lo general, una serie de scripts diferentes se encadenan en una compilación monolítica que tiene objetivos separados: preparación (compilación de una versión de compilación, como compilación), compilación (solo compilación), integración (compilación y ejecución de las pruebas de integración). Esto funciona razonablemente bien, el objetivo de compilación tarda aproximadamente un tercio del tiempo en ejecutarse como objetivo de integración y no es dolorosamente largo, así que no me siento desanimado a ejecutarlo con frecuencia.

Por otro lado, el objetivo de integración tarda tanto tiempo que no quiero hacerlo muy a menudo, idealmente antes de estar listo para realizar una implementación. ¿Parece esto una estrategia razonable? IOW, lo estoy haciendo bien?

El plan es eventualmente mover este proyecto a la Integración Continua. Soy nuevo en todo lo relacionado con la integración continua, pero creo que entiendo el concepto de "romper la compilación". así que me pregunto cuáles son algunas de las buenas prácticas a seguir para aprovechar al máximo.

Cualquier buena fuente de lectura sobre este tema también sería apreciada. Gracias!

¿Fue útil?

Solución

Sí, estás en el camino correcto. Lo que debe hacer ahora es conectar su objetivo nant a un proceso automatizado. Recomiendo usar Team City o Cruise Control como herramienta de CI. Una vez que haya configurado el servidor de forma automática, puede ejecutar las pruebas de compilación y unidad en cada verificación (Integración continua). Sus pruebas de integración podrían ejecutarse por la noche o durante el fin de semana, ya que normalmente demoran más en ejecutarse. Si sus pruebas de integración son exitosas, puede tener un trabajo que se implementará en algún QA u otro servidor.

Otros consejos

Suena como si estuvieras en el 99% de la ruta. Mi consejo es simplemente sumergirse y comenzar a hacerlo. Aprenderá mucho más si se da el paso y lo hace en lugar de pensar si lo está haciendo bien.

Mi empresa actualmente está utilizando CruiseControl y personalmente creo que es genial.

Vea este tema relacionado ¿Qué es un buen proceso de creación de CI?

Estás en el camino correcto. Si está utilizando una herramienta de CI decente, debería poder configurar cada configuración como un proyecto separado que desencadena el siguiente paso en la cadena ... es decir, una compilación exitosa desencadena pruebas que desencadenan la implementación que desencadena la integración, etc.

De esta manera, tu mejor " ruptura " detiene la línea por así decirlo.

Utilizamos CruiseControl para compilar, realizar pruebas de unidad, configurar e implementar, ejecutar pruebas de integración y cobertura de código, ejecutar pruebas de aceptación y paquetes para su lanzamiento. Esto es con un sistema de 8 o más servicios web y una docena de bases de datos, todas con dependencias interconectadas de configuración e implementación con múltiples entornos con diferentes configuraciones (desde cajas simples a cajas redundantes para cada componente)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top