Usar o comando codebuild-tests-run da CLI - AWS CodeBuild

Usar o comando codebuild-tests-run da CLI

O AWS CodeBuild fornece uma CLI que tomará o comando de teste e a localização do arquivo de teste como entrada. A CLI com essas entradas divide os testes em número de fragmentos, conforme especificado no campo parallelism, com base nos nomes dos arquivos de teste. A atribuição dos arquivos de teste ao fragmento é decidida pela estratégia de fragmentação.

codebuild-tests-run \ --files-search "codebuild-glob-search '**/__tests__/*.js'" \ --test-command 'npx jest --runInBand --coverage' \ --sharding-strategy 'equal-distribution'

A tabela a seguir descreve os campos para o comando codebuild-tests-run da CLI.

Nome do campo Tipo Obrigatório ou opcional Definição

test-command

String

Obrigatório

Esse comando é usado para executar os testes.

files-search

String

Obrigatório

Esse comando fornece uma lista de arquivos de teste. É possível usar o comando codebuild-glob-search da CLI fornecido pelo AWS CodeBuild ou qualquer outra ferramenta de pesquisa de arquivos de sua escolha.

nota

Certifique-se de que o comando files-search produza os nomes dos arquivos, cada um separado por uma nova linha.

sharding-strategy

Enum

Opcional

Valores válidos: equal-distribution (padrão), stability

  • equal-distribution: fragmente arquivos de teste uniformemente com base nos nomes dos arquivos de teste.

  • stability: fragmente arquivos de teste usando hash consistente dos nomes dos arquivos.

Para obter mais informações, consulte Sobre a divisão de testes.

A CLI codebuild-tests-run funciona primeiro para identificar a lista de arquivos de teste usando o comando fornecido no parâmetro files-search. Depois, ela determina um subconjunto de arquivos de teste designados para o fragmento (ambiente) atual usando a estratégia de fragmentação especificada. Por fim, esse subconjunto de arquivos de teste é formatado como uma lista separada por espaços e anexado ao final do comando fornecido no parâmetro test-command antes de ser executado.

Para frameworks de teste que não aceitam listas separadas por espaço, a CLI codebuild-tests-run fornece uma alternativa flexível por meio da variável de ambiente CODEBUILD_CURRENT_SHARD_FILES. Essa variável contém uma lista de caminhos de arquivos de teste, separados por quebras de linha, designados para o fragmento de compilação atual. Ao aproveitar essa variável de ambiente, você pode se adaptar facilmente a vários requisitos do framework de teste, acomodando aqueles que esperam formatos de entrada diferentes das listas separadas por espaço. Além disso, você também pode formatar os nomes dos arquivos de teste conforme a necessidade do framework de teste. Veja a seguir um exemplo do uso de CODEBUILD_CURRENT_SHARD_FILES no Linux com o framework do Django. Aqui, CODEBUILD_CURRENT_SHARD_FILES é usado para obter caminhos de arquivos em notação com pontos compatíveis com o Django:

codebuild-tests-run \ —files-search "codebuild-glob-search '/tests/test_.py'" \ —test-command 'python3 manage.py test $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed -E "s/\//__/g; s/\.py$//; s/__/./g")' \ —sharding-strategy 'equal-distribution'
nota

Observe que a variável de ambiente CODEBUILD_CURRENT_SHARD_FILES só pode ser usada dentro do escopo da CLI codebuild-tests-run.

Além disso, se você estiver usando CODEBUILD_CURRENT_SHARD_FILES dentro do comando de teste, coloque CODEBUILD_CURRENT_SHARD_FILES entre aspas duplas, conforme mostrado no exemplo acima.