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