Pregunta

En mi trabajo estamos ejecutando un grupo de pruebas que constan de alrededor de 3000 casos de prueba separados.Anteriormente, estábamos ejecutando todo este conjunto de pruebas en una máquina, lo que tardaba entre 24 y 72 horas en completar toda la ejecución de la prueba.Ahora hemos creado nuestro propio sistema para agrupar y distribuir las pruebas entre aproximadamente tres máquinas separadas y las pruebas tienen prioridad para que las pruebas principales se ejecuten primero para obtener resultados más inmediatos y las pruebas adicionales se ejecuten cuando haya una máquina disponible.

Tengo curiosidad por saber si alguien ha encontrado una buena manera de distribuir sus pruebas entre varias máquinas para reducir el tiempo total de prueba para una ejecución completa y qué herramientas se utilizaron para lograrlo.Investigué un poco y parece que TestNG es avanzando en esta dirección, pero parece que todavía está en bastante desarrollo.

No planeamos reescribir ninguna de nuestras pruebas, pero a medida que agregamos nuevas pruebas y probamos nuevos productos o complementos, me gustaría poder lidiar con el hecho de que estamos trabajando con una gran cantidad de pruebas.Por otro lado, si podemos encontrar una herramienta que ayude a distribuir nuestro Junit 3.x pruebas incluso de una manera muy básica, que haría sería útil ya que no tendríamos que mantener nuestras propias herramientas para hacerlo.

¿Fue útil?

Solución

He visto a algunas personas jugando con JUnit distribuido.No puedo dar fe de cuán efectivo es, pero los otros equipos que he visto parecían pensar que era bastante sencillo.Espero que ayude.

Otros consejos

Nuestro personal de construcción utiliza Mozilla Tinderbox.Parece tener algunos ganchos para pruebas distribuidas.Lamento no conocer los detalles, pero pensé que al menos podría transmitirte el indicador.

También es bueno porque puedes saber inmediatamente cuándo se rompe una compilación y qué registro podría haber sido el culpable.

http://www.mozilla.org/tinderbox.html

También hay junta-paralela.Dependiendo de cómo ejecute actualmente sus pruebas, su conveniencia puede variar: la idea es simplemente realizar múltiples subprocesos en un solo sistema que tenga múltiples núcleos.He jugado con él brevemente, pero es un cambio con respecto a la forma en que ejecutamos nuestras pruebas actualmente.

hudson, el motor de integración continua que uso, también tiene algunas formas de distribuir la ejecución de pruebas (trabajos separados que agregan resultados en uno).

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