Olá Himanshu,
Obrigado por entrar em contato com a comunidade de perguntas e respostas da Microsoft.
Para integrar seus testes automatizados de API (como os gerados pelo Keploy) ao seu pipeline Azure DevOps e atender aos seus requisitos (falhar no pipeline em caso de falha e reportar resultados ao painel de Testes), você pode usar a __ tarefa __Publicar Resultados de TestePublishTestResults@2 ().
Aqui estão os passos recomendados para alcançar isso:
1. Resultados de Teste de Saída em Formato Suportado: Azure DevOps suporta vários formatos de resultados de teste (por exemplo, JUnit, NUnit, VSTest, xUnit). Certifique-se de que seus testes de backend Node.js estejam configurados para exportar resultados como um arquivo XML JUnit. Por exemplo, se você estiver usando Mocha em seus testes, pode executar:
npm test -- --reporter mocha-junit-reporter --reporter-options mochaFile=./test-results/results.xml
2. Adicionar a tarefa Publicar Resultados de Teste: Adicione a PublishTestResults@2 tarefa ao azure-pipelines.yml seu script de execução após o teste. Para garantir que o pipeline falhe quando um teste falha, você deve definir a failTaskOnFailedTests propriedade para true.
De acordo com a Documentação Oficial da Microsoft para PublishTestResults@2:
"failTaskOnFailedTests - Fail se houver falhas nos testes. Booleano. Valor padrão: falso. Opcional. Quando o valor desse booleano é verdadeiro, a tarefa falhará se qualquer um dos testes no arquivo de resultados for marcado como falhado."
Veja como sua configuração YAML deve ser:
stages:
- stage: Test
jobs:
- job: RunApiTests
pool:
vmImage: 'ubuntu-latest'
steps:
- checkout: self
- script: |
npm ci
# Command to run API tests and output JUnit XML
npm test -- --reporter mocha-junit-reporter --reporter-options mochaFile=./test-results/results.xml
displayName: 'Run API tests'
continueOnError: true # Ensures the publish task runs even if the script fails due to test failures
- task: PublishTestResults@2
displayName: 'Publish API Test Results'
inputs:
testResultsFormat: 'JUnit'
testResultsFiles: '**/test-results/*.xml'
failTaskOnFailedTests: true
testRunTitle: 'Node.js API Tests'
Nota: É recomendado configurar continueOnError: true a etapa de execução do teste. Se os testes falharem, o comando script gera um código de saída 1, que geralmente para o pipeline instantaneamente. Definir essa flag permite que o pipeline prossiga para a PublishTestResults@2 tarefa para que ele possa realmente enviar os logs de falha para o painel.
3. Verifique os Resultados: Após a conclusão do pipeline, navegue até a aba Testes na página de resumo do Pipeline no Azure DevOps. Você verá um painel detalhado com as taxas de aprovação/reprovação em testes da API.
Nota: Esta resposta foi elaborada com a ajuda de sistemas de IA.