Pergunta

No meu trabalho, estamos executando um grupo de testes que consiste em cerca de 3.000 casos de teste separados.Anteriormente, estávamos executando todo esse conjunto de testes em uma máquina, o que levava de 24 a 72 horas para concluir toda a execução do teste.Agora criamos nosso próprio sistema para agrupar e distribuir os testes entre cerca de três máquinas separadas e os testes são priorizados para que os testes principais sejam executados primeiro para obter resultados mais imediatos e os testes extras sejam executados quando houver uma máquina disponível.

Estou curioso para saber se alguém encontrou uma boa maneira de distribuir seus testes entre várias máquinas para reduzir o tempo total de teste para uma execução completa e quais ferramentas foram usadas para conseguir isso.Eu fiz algumas pesquisas e parece que TestNG é movendo nesta direção, mas parece que ainda está em bastante desenvolvimento.

Não planejamos reescrever nenhum de nossos testes, mas à medida que adicionamos novos testes e testamos novos produtos ou complementos, gostaria de poder lidar com o fato de que estamos trabalhando com um grande número de testes.Por outro lado, se conseguirmos encontrar uma ferramenta que ajude a distribuir nosso Junit 3.x testes mesmo de uma forma muito básica, que seria seria útil, pois não precisaríamos manter nossas próprias ferramentas para fazer isso.

Foi útil?

Solução

Eu vi algumas pessoas brincando com JUnit distribuído.Não posso garantir o quão eficaz é, mas as outras equipes que vi pareciam pensar que era bastante simples.Espero que ajude.

Outras dicas

Nosso pessoal de construção usa o Mozilla Tinderbox.Parece ter alguns ganchos para testes distribuídos.Lamento não saber os detalhes, mas pensei em pelo menos passar o ponteiro para você.

Também é bom porque você pode descobrir imediatamente quando uma compilação falha e qual check-in pode ter sido o culpado.

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

Há também junção paralela.Dependendo de como você executa seus testes atualmente, sua conveniência pode variar - a ideia é apenas multithread em um único sistema que possui vários núcleos.Eu brinquei com isso brevemente, mas é uma mudança em relação à forma como executamos nossos testes atualmente.

Hudson, o mecanismo de integração contínua que uso, também possui algumas maneiras de distribuir a execução de testes (trabalhos separados agregam resultados em um).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top