2012-01-30 16 views
5

Me comprometo cada vez que hago algunos cambios que creo que podría funcionar: no realizo pruebas exhaustivas antes de una confirmación. Además, mis compromisos pronto serán automáticamente pushed to a remote repository. (Soy el único desarrollador, y tengo que agregar funciones o reescribir partes del código muchas veces al día.)mercurial: ejecutar pruebas de regresión remotas automáticamente en cada confirmación

Me gustaría configurar una computadora remota para ejecutar pruebas de regresión automáticamente cada vez que cometo algo; y luego envíeme por correo electrónico el informe de diferencias.

¿Cuál es la forma más fácil de configurar esto?

Todo mi código está en Python 3. Mi propio sistema es Windows 7, ActiveState Python, TortoiseHG y Wing IDE. Puedo configurar la computadora remota como Linux o Windows. La aplicación es toda la línea de comandos, con entrada y salida de texto.

Respuesta

6

Utilice un servidor de integración continuo como Buildbot o Jenkins y configúrelo para supervisar el repositorio. Luego ejecuta las pruebas con eso. Buildbot está escrito en Python por lo que debes sentirte como en casa con él.

Si usted siente que es un desperdicio para hacer Buildbot o Jenkins sondean el repositorio (a pesar de que hg pull utiliza muy pocos recursos cuando no hay nuevos conjuntos de cambios), entonces usted puede configurar un gancho changegroup en el repositorio para desencadenar una acumulación en el CI servidor.

+1

Ejecutamos TeamCity, otro gran servidor de integración continua. – StrangeWill

+1

@StrangeWill: He oído cosas buenas sobre TeamCity, por ejemplo, que puede programar compilaciones en el agente que ya tiene un clon que es más parecido al clon en sentido ascendente, de modo que 'hg pull' es rápido para el cliente. Solo me centré en las herramientas de código abierto en mi respuesta ya que es lo que tengo más experiencia conmigo mismo. –

2

Recomendaría configurar Buildbot. Puede hacer que vea un repositorio remoto (se admite Mercurial) y que inicie automáticamente una compilación cuando cambie el repositorio. En su caso, una compilación sería simplemente ejecutar su suite de pruebas.

Su visualización en cascada le permite ver qué compilaciones fallaron y cuándo, en relación con las confirmaciones del repositorio. Incluso puede avisarte, con el compromiso ofensivo, cuando algo se rompe.

Jenkins es otra opción que admite la mayoría de las mismas características. Incluso hay opciones de alojamiento en la nube, como ShiningPanda que pueden alojarlo por usted, y ofrecen licencias gratuitas para proyectos de código abierto.

Cuestiones relacionadas