Sobre a divisão de testes
O recurso de divisão de testes do AWS CodeBuild permite paralelizar a execução da suíte de testes em várias instâncias de computação, reduzindo o tempo geral de execução do teste. Esse recurso é ativado por meio da configuração em lote nas configurações do projeto do CodeBuild e do utilitário codebuild-tests-run no arquivo buildspec.
Os testes são divididos com base na estratégia de fragmentação especificada. O CodeBuild fornece duas estratégias de fragmentação, conforme especificado abaixo:
- Distribuição igualitária
-
A estratégia de fragmentação
equal-distributiondivide os testes em compilações paralelas com base na ordem alfabética dos nomes dos arquivos de teste. Essa abordagem primeiro classifica os arquivos de teste e, depois, emprega um método baseado em fragmentos para distribuí-los, garantindo que arquivos semelhantes sejam agrupados para teste. Ela é recomendado ao lidar com um conjunto relativamente pequeno de arquivos de teste. Embora esse método tenha como objetivo alocar um número aproximadamente igual de arquivos para cada fragmento, com uma diferença máxima de um, ele não garante estabilidade. Quando arquivos de teste são adicionados ou removidos em compilações subsequentes, a distribuição dos arquivos existentes pode mudar, podendo causar a reatribuição entre fragmentos. - Estabilidade
-
A estratégia de fragmentação
stabilityemprega um algoritmo de hash consistente para dividir os testes entre fragmentos, garantindo que a distribuição de arquivos permaneça estável. Quando novos arquivos são adicionados ou removidos, essa abordagem garante que as atribuições existentes de arquivo a fragmento permaneçam praticamente inalteradas. Para suítes de teste grandes, é recomendável usar a opção de estabilidade para distribuir uniformemente os testes entre os fragmentos. O objetivo desse mecanismo é fornecer uma distribuição quase igual, garantindo que cada fragmento receba um número similar de arquivos, com apenas uma variação mínima. Embora a estratégia de estabilidade não garanta uma distribuição igualitária ideal, ela oferece uma distribuição quase igual que mantém a consistência nas atribuições de arquivos entre compilações, mesmo quando os arquivos são adicionados ou removidos.
Para habilitar a divisão de testes, você precisa definir a seção de lotes nas configurações do projeto do CodeBuild, especificando o nível de parallelism desejado e outros parâmetros relevantes. Além disso, você precisará incluir o utilitário codebuild-tests-run no arquivo buildspec, junto com os comandos de teste e o método de divisão apropriados.