You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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中添加报告解析与邮件整合任务
    放弃通用邮件扩展,用自定义脚本提取用例状态并生成邮件内容:

    1. 添加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
      
    2. 添加邮件发送任务(比如Azure DevOps内置的Send email任务),将生成的test-results.html内容嵌入邮件正文。
  • 第三步:确保任务执行顺序
    在Pipeline YAML中设置任务依赖,或者在可视化编辑器中调整顺序,保证Cypress测试任务完成后,再执行报告解析和邮件发送任务。

也可以搭配Cypress Report Publisher扩展,先在Pipeline中展示完整测试报告,再通过脚本提取关键用例状态整合到邮件里。

内容的提问来源于stack exchange,提问作者Stephen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 08:52:03