Azure Pipeline中Cypress测试结果邮件如何包含测试场景状态?
在Azure Pipeline的Cypress测试邮件中添加用例状态的解决方案
核心思路:先生成含用例级结果的Cypress报告,再通过自定义脚本解析并整合到邮件中
第一步:配置Cypress生成详细测试报告
使用mochawesome报告器生成包含每个用例状态的JSON/HTML报告,在cypress.config.js中添加配置:module.exports = defineConfig({ e2e: { reporter: 'mochawesome', reporterOptions: { reportDir: 'cypress/reports/mochawesome', overwrite: false, html: true, json: true } } });执行测试后,会在指定目录生成包含所有用例通过/失败状态的JSON报告。
第二步:在Pipeline中添加报告解析与邮件整合任务
放弃通用邮件扩展,用自定义脚本提取用例状态并生成邮件内容:- 添加PowerShell/Bash任务解析JSON报告,生成带用例状态的HTML片段:
$reportPath = "cypress/reports/mochawesome/*.json" $reports = Get-ChildItem -Path $reportPath $testResults = @() foreach ($report in $reports) { $data = Get-Content $report.FullName | ConvertFrom-Json foreach ($suite in $data.results) { foreach ($test in $suite.tests) { $status = if ($test.failures -gt 0) { "❌ 失败" } else { "✅ 通过" } $testResults += "| $($test.title) | $status |" } } } $emailContent = @" <h3>Cypress测试用例结果汇总</h3> <table border='1'> <tr><th>测试用例名称</th><th>执行状态</th></tr> $($testResults -join "`n") </table> "@ Set-Content -Path "test-results.html" -Value $emailContent - 添加邮件发送任务(比如Azure DevOps内置的
Send email任务),将生成的test-results.html内容嵌入邮件正文。
- 添加PowerShell/Bash任务解析JSON报告,生成带用例状态的HTML片段:
第三步:确保任务执行顺序
在Pipeline YAML中设置任务依赖,或者在可视化编辑器中调整顺序,保证Cypress测试任务完成后,再执行报告解析和邮件发送任务。
也可以搭配Cypress Report Publisher扩展,先在Pipeline中展示完整测试报告,再通过脚本提取关键用例状态整合到邮件里。
内容的提问来源于stack exchange,提问作者Stephen
相关产品推荐
相关产品推荐

