IBM Cloud Docs
Publicando resultados de teste

Publicando resultados de teste

É possível publicar resultados de teste usando o Jenkins para integrar seus projetos ao IBM Cloud® DevOps Insights. Os resultados de teste informam o DevOps Insights sobre os testes que são executados durante o processo de construção. Esses testes devem gerar algum tipo de arquivo baseado em JSON ou XML.

O arquivo de teste gerado é publicado como um registro de teste. Junto com o arquivo de teste, esse registro contém o nome do aplicativo, o número da construção, os tipos de teste e outros campos. O nome do aplicativo e o ID da construção no registro de teste devem corresponder àqueles usados no registro de construção de uma construção específica. Depois de executar um teste em um pipeline, é possível fazer upload dos resultados no DevOps Insights.

Antes de Iniciar

Antes de publicar os resultados do teste, deve-se publicar um registro de compilação. Para obter mais informações, consulte publicando um registro de construção usando o Jenkins.

Publicando resultados de teste

Veja a seguir os tipos de testes que podem ser usados e os formatos que são suportados.

Ferramentas e formatos suportados
Tipo Formatos
Teste de unidade JUnit (JSON), xUnit (xml), Mocha (JSON), KarmaMocha (JSON)
Testes de Função JUnit (JSON), xUnit (xml), Mocha (JSON), KarmaMocha (JSON)
Cobertura de código Cobertura (xml), lcov, JaCoCo (xml)
Sonarqube Sonarqube
Varredura de segurança estática IBM Application Security on Cloud (xml)
Varredura de segurança dinâmica IBM Application Security on Cloud (xml)
IBM Vulnerability Advisor IBM Vulnerability Advisor (JSON)
Conjuntos de dados customizados - Testes JUnit (JSON), xUnit (xml), Mocha (JSON), KarmaMocha (JSON)
Conjuntos de dados customizados - Cobertura de código Cobertura (xml), lcov, JaCoCo (xml)

Publique registros de construção com a etapa publishTestResult. Essa etapa requer dois parâmetros. Ela também pode aceitar um parâmetro opcional.

Publicação de parâmetros e definições de registros de compilação
Parâmetro Definição
type O tipo de resultado de teste.
fileLocation O local do arquivo de resultado de teste.
environment O ambiente é necessário somente para os testes de verificação funcional (fvt) em suas execuções de teste.
buildNumber Opcional: configure o valor como qualquer sequência para representar o número da versão.
applicationName Opcional: configure o nome do aplicativo. Se esse valor for configurado, a variável de ambiente IBM_CLOUD_DEVOPS_APP_NAME será ignorada.

Veja a seguir os comandos que são usados para visualizar os resultados de um teste específico.

Resultado do teste e tipos de teste
Resultado do teste Tipo de teste
unittest Testes de unidade
fvt Testes de verificação funcional
code Testes de cobertura de código
staticsecurityscan Resultado da varredura de segurança estática
dynamicsecurityscan Varredura de segurança dinâmica

Os comandos de exemplo a seguir incluem os parâmetros. O primeiro comando publica os resultados de teste de unidade Mocha e o segundo comando publica os resultados de teste de cobertura de código.

publishTestResults type:'unittest', fileLocation: './mochatest.json'
publishTestResults type:'code', fileLocation: './tests/coverage/reports/coverage-summary.json'
publishTestResults type:'fvt', fileLocation: './mochafvt.json', environment: 'STAGING'
publishTestResults type:'staticsecurityscan', fileLocation: './static-result.xml'
publishTestResults type:'dynamicsecurityscan', fileLocation: './dynamic-result.xml'
publishTestResults type:'vulnerabilityadvisor', fileLocation: './vulnerability-advisor.json'

Para cada comando, é necessário especificar o ID da cadeia de ferramentas para exportar a variável de ambiente. Para obter mais informações, consulte Variáveis de ambiente e definições.

Publicando resultados do SonarQube (opcional)

Depois de configurar um scanner e um servidor SonarQube seguindo as instruções da documentaçãoSonarQube, você pode publicar os resultados da varredura em DevOps Insights.

Para configurar o pipeline do Jenkins para aceitar esses resultados, inclua os parâmetros a seguir:

Resultado do teste e tipos de teste
Parâmetro Definição
SQHostURL A parte do host da URL do scanner SonarQube por meio do servidor SonarQube.
SQAuthToken Seu token de autenticação da API do SonarQube por meio do seu servidor SonarQube.
SQProjectKey A chave do projeto SonarQube que você deseja varrer.
buildNumber Opcional: o valor configurado como qualquer sequência que representa o número da versão.
applicationName Opcional: configure o nome do aplicativo. Se esse valor for configurado, a variável de ambiente IBM_CLOUD_DEVOPS_APP_NAME será ignorada.

Aqui estão os parâmetros SonarQube que são usados em um estágio de amostra:

stage ('SonarQube analysis') {
    steps {
        script {
            def scannerHome = tool 'Default SQ Scanner';
            withSonarQubeEnv('Default SQ Server') {

                env.SQ_Host)URL = SONAR_HOST_URL;
                env.SQ_AUTHENTICATION_TOKEN = SONAR_AUTH_TOKEN;
                env.SQ_PROJECT_KEY = "My Project Key";

                run SonarQube scan...
            }
        }
    }
}
stage ("SonarQube Quality Gate") {
    steps {
        ...
    }
    post {
        always {
            publishSQResults SQHostURL: "${SQ_HOST_URL}", SQAuthToken: "${SQ_AUTHENTICATION_TOKEN}", SQProjectKey:"${SQ_PROJECT_KEY}"
        }
    }
}

Visualizando resultados de teste

Quando o pipeline for executado, ele publicará os dados do resultado de teste no DevOps Insights. Para visualizar os dados do resultado de teste, acesse a página Painel de qualidade. Para obter mais informações, consulte Agregação de dados do DevOps.

Próximas etapas

Avaliar portas usando o Jenkins.