Práticas recomendadas para testes - Amazon CodeCatalyst

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Práticas recomendadas para testes

Ao usar os recursos de teste fornecidos pelo CodeCatalyst, recomendamos que você siga essas melhores práticas.

Descoberta automática

Ao configurar ações CodeCatalyst, a descoberta automática permite que você descubra automaticamente os resultados de várias ferramentas, como relatórios de JUnit teste, e gere CodeCatalyst relatórios relevantes a partir deles. A descoberta automática ajuda a garantir que os relatórios continuem sendo gerados mesmo que os nomes ou caminhos para as saídas descobertas mudem. Quando novos arquivos são adicionados, os descobre CodeCatalyst automaticamente e produz relatórios relevantes. No entanto, se você usa a descoberta automática, é importante considerar alguns dos seguintes aspectos desse recurso:

  • Quando você ativa a descoberta automática em sua ação, todos os relatórios descobertos automaticamente do mesmo tipo compartilharão os mesmos critérios de sucesso. Por exemplo, um critério compartilhado, como taxa mínima de aprovação, se aplicaria a todos os relatórios de teste descobertos automaticamente. Se você precisar de critérios diferentes para relatórios do mesmo tipo, deverá configurar explicitamente cada um desses relatórios.

  • A descoberta automática também pode encontrar relatórios produzidos por suas dependências e, se os critérios de sucesso estiverem configurados, poderá falhar na ação desses relatórios. Esse problema pode ser resolvido atualizando a configuração do caminho de exclusão.

  • Não é garantido que a descoberta automática produza sempre a mesma lista de relatórios, pois ela verifica a ação em tempo de execução. No caso de você querer que um relatório específico seja sempre produzido, você deve configurar os relatórios explicitamente. Por exemplo, se os testes parassem de ser executados como parte de sua compilação, a estrutura de teste não produziria nenhuma saída e, como resultado, nenhum relatório de teste seria produzido e a ação poderia ser bem-sucedida. Se você quiser que o sucesso de sua ação dependa desse teste específico, você deve configurar explicitamente esse relatório.

dica

Ao começar um projeto novo ou existente, use a descoberta automática para todo o diretório do projeto (incluir**/*). Isso invoca a geração de relatórios em todos os arquivos do seu projeto, incluindo aqueles em subdiretórios.

Para obter mais informações, consulte Configurando relatórios de qualidade em uma ação.

Critérios de sucesso

Você pode impor limites de qualidade em seus relatórios configurando critérios de sucesso. Por exemplo, se dois relatórios de cobertura de código foram descobertos automaticamente, um com uma cobertura de linha de 80% e outro com uma cobertura de linha de 60%, você tem as seguintes opções:

  • Defina os critérios de sucesso da descoberta automática para cobertura de linha em 80%. Isso faria com que o primeiro relatório fosse aprovado e o segundo falhasse, o que resultaria na falha geral da ação. Para desbloquear o fluxo de trabalho, adicione novos testes ao seu projeto até que a cobertura da linha para o segundo relatório exceda 80%.

  • Defina os critérios de sucesso da descoberta automática para cobertura de linha em 60%. Isso faria com que os dois relatórios fossem aprovados, o que resultaria no sucesso da ação. Você poderia então trabalhar para aumentar a cobertura do código no segundo relatório. No entanto, com essa abordagem, você não pode garantir que a cobertura no primeiro relatório não caia abaixo de 80%.

  • Configure explicitamente um ou ambos os relatórios usando o editor visual ou adicionando uma YAML seção e um caminho explícitos para cada relatório. Isso permitiria que você configurasse critérios de sucesso e nomes personalizados separados para cada relatório. No entanto, com essa abordagem, a ação pode falhar se os caminhos do relatório mudarem.

Para obter mais informações, consulte Configurando critérios de sucesso para relatórios.

Incluir/excluir caminhos

Ao analisar os resultados da ação, você pode ajustar a lista de relatórios que são gerados CodeCatalyst pela configuração e. IncludePaths ExcludePaths

  • Use IncludePaths para especificar os arquivos e caminhos de arquivo que você CodeCatalyst deseja incluir ao pesquisar relatórios. Por exemplo, se você especificar"/test/report/*", CodeCatalyst pesquisa toda a imagem de compilação usada pela ação procurando o /test/report/ diretório. Quando encontra esse diretório CodeCatalyst , procura relatórios nesse diretório.

    nota

    Para relatórios configurados manualmente, IncludePaths deve ser um padrão global que corresponda a um único arquivo.

  • Use ExcludePaths para especificar os arquivos e caminhos de arquivo que você CodeCatalyst deseja excluir ao pesquisar relatórios. Por exemplo, se você especificar"/test/reports/**/*", não CodeCatalyst procurará arquivos no /test/reports/ diretório. Para ignorar todos os arquivos em um diretório, use o padrão **/* glob.

A seguir estão exemplos de possíveis padrões globais.

Padrão Descrição

*.*

Corresponde a todos os nomes de objetos no diretório atual que contêm um ponto

*.xml

Corresponde a todos os nomes de objetos no diretório atual que terminam com .xml

*.{xml,txt}

Corresponde a todos os nomes de objetos no diretório atual que terminam com .xml ou .txt

**/*.xml

Corresponde aos nomes dos objetos em todos os diretórios que terminam com .xml

testFolder

Corresponde a um objeto chamadotestFolder, tratando-o como um arquivo

testFolder/*

Combina objetos em um nível da subpasta detestFolder, como testFolder/file.xml

testFolder/*/*

Combina objetos em dois níveis da subpasta detestFolder, como testFolder/reportsFolder/file.xml

testFolder/**

Corresponde a subpasta testFolder bem como aos arquivos abaixo de testFolder, por exemplo, testFolder/file.xml e testFolder/otherFolder/file.xml

CodeCatalyst interpreta os padrões globais da seguinte forma:

  • O caractere slash (/) separa os diretórios nos caminhos dos arquivos.

  • O caractere de asterisco (*) corresponde a zero ou mais caracteres de um componente de nome sem cruzar limites da pasta.

  • Um asterisco duplo (**) corresponde a zero ou mais caracteres de um componente de nome em todos os diretórios.

nota

ExcludePathstem precedência sobre. IncludePaths Se ambos IncludePaths ExcludePaths incluírem a mesma pasta, essa pasta não será examinada em busca de relatórios.