'Relatório de teste usando a amostra AWS CLI' - AWS CodeBuild

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á.

'Relatório de teste usando a amostra AWS CLI'

Os testes que você especificar no arquivo buildspec são executados durante a compilação. Este exemplo mostra como usar o para AWS CLI incorporar testes em CodeBuild compilações. Você pode usar JUnit para criar testes de unidade ou usar outra ferramenta para criar testes de configuração. Depois, você pode avaliar os resultados do teste para corrigir problemas ou otimizar seu aplicativo.

Você pode usar o console CodeBuild API ou o AWS CodeBuild console para acessar os resultados do teste. Este exemplo mostra como configurar seu relatório para que seus resultados de teste sejam exportados para um bucket do S3.

Execute a amostra do relatório de teste

Use as etapas a seguir para executar a amostra do relatório de teste.

Pré-requisitos

  • Criar seus casos de teste. Este exemplo é escrito partindo-se do pressuposto de que você tem casos de teste para incluir em seu relatório de teste de amostra. Especifique o local dos arquivos de teste no arquivo buildspec.

    Os seguintes formatos de arquivo de relatório de teste são compatíveis:

    • Pepino JSON (.json)

    • JUnitXML(.xml)

    • NUnitXML(.xml)

    • NUnit3XML(.xml)

    • TestNG XML (.xml)

    • Visual Studio TRX (.trx)

    • Visual Studio TRX XML (.xml)

    Crie seus casos de teste com qualquer estrutura de teste que possa criar arquivos de relatório em um desses formatos (por exemplo, JUnit plug-in Surefire, TestNG ou Cucumber).

  • Crie um bucket do S3 e anote seu nome. Para obter mais informações, consulte How do I create an S3 bucket? no Guia do usuário do Amazon S3.

  • Crie uma IAM função e anote-aARN. Você precisa do ARN ao criar seu projeto de construção.

  • Se sua função não tiver as seguintes permissões, adicione-as.

    { "Effect": "Allow", "Resource": [ "*" ], "Action": [ "codebuild:CreateReportGroup", "codebuild:CreateReport", "codebuild:UpdateReport", "codebuild:BatchPutTestCases" ] }

    Para obter mais informações, consulte Permissões para operações de relatórios de testes.

Etapa 1: criar um grupo de relatórios

  1. Crie um arquivo chamado CreateReportGroupInput.json.

  2. Crie uma pasta no bucket do S3 onde os resultados do teste são exportados.

  3. Copie o seguinte em CreateReportGroupInput.json. Em <bucket-name>, use o nome do bucket do S3. Em <path-to-folder>, insira o caminho para a pasta no bucket do S3.

    { "name": "<report-name>", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<bucket-name>", "path": "<path-to-folder>", "packaging": "NONE" } } }
  4. Execute o comando a seguir no diretório que contenha CreateReportGroupInput.json.

    aws codebuild create-report-group --cli-input-json file://CreateReportGroupInput.json

    A saída é semelhante à seguinte. Anote o ARN para reportGroup o. Use-o ao criar um projeto que use esse grupo de relatórios.

    { "reportGroup": { "arn": "arn:aws:codebuild:us-west-2:123456789012:report-group/<report-name>", "name": "<report-name>", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<s3-bucket-name>", "path": "<folder-path>", "packaging": "NONE", "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3" } }, "created": 1570837165.885, "lastModified": 1570837165.885 } }

Etapa 2: configurar um projeto com um grupo de relatórios

Para executar um relatório, primeiro você cria um projeto de CodeBuild compilação configurado com seu grupo de relatórios. Os casos de teste especificados para o grupo de relatórios são executados quando você executa uma compilação.

  1. Crie um arquivo buildspec chamado buildspec.yml.

  2. Use o seguinte YAML como modelo para seu buildspec.yml arquivo. Inclua os comandos que executam seus testes. Na seção reports, especifique os arquivos que contêm os resultados dos seus casos de teste. Esses arquivos armazenam os resultados do teste com os quais você pode acessar CodeBuild. Eles expiram 30 dias após sua criação. Esses arquivos são diferentes dos arquivos de resultado de caso de teste bruto exportados para um bucket do S3.

    version: 0.2 phases: install: runtime-versions: java: openjdk8 build: commands: - echo Running tests - <enter commands to run your tests> reports: <report-name-or-arn>: #test file information files: - '<test-result-files>' base-directory: '<optional-base-directory>' discard-paths: false #do not remove file paths from test result files
    nota

    Em vez ARN de um grupo de relatórios existente, você também pode especificar um nome para um grupo de relatórios que não foi criado. Se você especificar um nome em vez de umARN, CodeBuild cria um grupo de relatórios ao executar uma compilação. O nome dele contém o nome do projeto e o nome que você especificar no arquivo buildspec, neste formato: project-name-report-group-name. Para ter mais informações, consulte Crie relatórios de teste e Nomenclatura do grupo de relatórios.

  3. Crie um arquivo chamado project.json. Este arquivo contém entrada para o comando create-project.

  4. Copie o seguinte JSON emproject.json. Em source, insira o tipo e o local do repositório que contém os arquivos de origem. ParaserviceRole, especifique ARN a função que você está usando.

    { "name": "test-report-project", "description": "sample-test-report-project", "source": { "type": "CODECOMMIT|CODEPIPELINE|GITHUB|S3|BITBUCKET|GITHUB_ENTERPRISE|NO_SOURCE", "location": "<your-source-url>" }, "artifacts": { "type": "NO_ARTIFACTS" }, "cache": { "type": "NO_CACHE" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "small" }, "serviceRole": "arn:aws:iam::<your-aws-account-id>:role/service-role/<your-role-name>" }
  5. Execute o comando a seguir no diretório que contenha project.json. Isso cria um projeto chamado test-project.

    aws codebuild create-project --cli-input-json file://project.json

Etapa 3: executar e visualizar os resultados de um relatório

Nesta seção, você executa uma compilação do projeto criado anteriormente. Durante o processo de criação, CodeBuild cria um relatório com os resultados dos casos de teste. O relatório está contido no grupo de relatórios especificado.

  1. Para iniciar uma compilação, execute o comando a seguir. test-report-project é o nome do projeto de compilação criado acima. Anote o ID de compilação que aparece na saída.

    aws codebuild start-build --project-name test-report-project
  2. Execute o comando a seguir para obter informações sobre sua compilação, incluindo a ARN do seu relatório. Em <build-id>, especifique seu ID de compilação. Anote o relatório ARN na reportArns propriedade da saída.

    aws codebuild batch-get-builds --ids <build-id>
  3. Execute o comando a seguir para obter detalhes sobre o relatório. Para<report-arn>, especifique seu relatórioARN.

    aws codebuild batch-get-reports --report-arns <report-arn>

    A saída é semelhante à seguinte. Essa saída de exemplo mostra quantos testes foram bem-sucedidos, falharam, foram ignorados, resultaram em erro ou retornaram um status desconhecido.

    { "reports": [ { "status": "FAILED", "reportGroupArn": "<report-group-arn>", "name": "<report-group-name>", "created": 1573324770.154, "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<amzn-s3-demo-bucket>", "path": "<path-to-your-report-results>", "packaging": "NONE", "encryptionKey": "<encryption-key>" } }, "expired": 1575916770.0, "truncated": false, "executionId": "arn:aws:codebuild:us-west-2:123456789012:build/<name-of-build-project>:2c254862-ddf6-4831-a53f-6839a73829c1", "type": "TEST", "arn": "<report-arn>", "testSummary": { "durationInNanoSeconds": 6657770, "total": 11, "statusCounts": { "FAILED": 3, "SKIPPED": 7, "ERROR": 0, "SUCCEEDED": 1, "UNKNOWN": 0 } } } ], "reportsNotFound": [] }
  4. Execute o seguinte comando para listar informações sobre casos de teste para seu relatório. Para<report-arn>, especifique o ARN do seu relatório. No parâmetro opcional --filter, você pode especificar um resultado de status (SUCCEEDED, FAILED, SKIPPED, ERROR, ou UNKNOWN).

    aws codebuild describe-test-cases \ --report-arn <report-arn> \ --filter status=SUCCEEDED|FAILED|SKIPPED|ERROR|UNKNOWN

    A saída é semelhante à seguinte.

    { "testCases": [ { "status": "FAILED", "name": "Test case 1", "expired": 1575916770.0, "reportArn": "<report-arn>", "prefix": "Cucumber tests for agent", "message": "A test message", "durationInNanoSeconds": 1540540, "testRawDataPath": "<path-to-output-report-files>" }, { "status": "SUCCEEDED", "name": "Test case 2", "expired": 1575916770.0, "reportArn": "<report-arn>", "prefix": "Cucumber tests for agent", "message": "A test message", "durationInNanoSeconds": 1540540, "testRawDataPath": "<path-to-output-report-files>" } ] }