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

如何将Azure DevOps中Cypress自动化测试结果关联至测试计划测试用例?

解决Cypress测试结果与Azure DevOps测试用例关联的方案

方案1:自定义JUnit XML报告注入测试用例ID

Cypress的JUnit Reporter支持自定义测试名称或属性,你可以把ADO测试用例ID嵌入测试名称,或是修改Reporter配置添加自定义属性,之后在Azure DevOps中通过测试结果筛选或自定义任务完成关联。

  • 步骤1:在Cypress测试代码里,将测试用例ID作为测试名称的前缀,示例:
    it('C12345 - 用户登录功能验证', () => {
      // 测试逻辑
    });
    
  • 步骤2:在cypress.config.js中配置JUnit Reporter,确保测试名称完整输出到XML:
    const { defineConfig } = require("cypress");
    module.exports = defineConfig({
      reporter: 'junit',
      reporterOptions: {
        mochaFile: 'results/test-results-[hash].xml',
        toConsole: false,
        includePending: false
      }
    });
    
  • 步骤3:发布测试结果后,可在Azure DevOps测试结果页面通过搜索用例ID(如C12345)手动关联;也可以编写PowerShell脚本,解析JUnit XML中的用例ID,调用Azure DevOps API自动完成关联。

方案2:利用Azure DevOps测试管理API自动关联

借助Azure DevOps的REST API,能在测试结果发布后自动绑定Cypress测试结果与测试计划中的用例。

  • 步骤1:在ADO项目中生成个人访问令牌(PAT),权限需包含测试管理(读写)和构建(读写)。
  • 步骤2:编写Post-build脚本(Node.js或PowerShell均可),核心逻辑如下:
    1. 获取PublishTestResult@2任务输出的测试运行ID。
    2. 解析JUnit XML文件,提取每个测试对应的用例ID(从测试名称或自定义属性中)。
    3. 调用Test Results - Update API,将测试结果与对应测试用例ID关联。
      示例PowerShell核心代码:
    # 从PublishTestResult任务输出获取测试运行ID
    $testRunId = $(PublishTestResult.TestRunId)
    # 解析XML文件提取用例ID与测试结果映射
    $xml = [xml](Get-Content .\results\test-results.xml)
    foreach ($test in $xml.testsuites.testsuite.testcase) {
      $testCaseId = ($test.name -split ' - ')[0] # 匹配名称前缀的用例ID
      $testResultId = $test.id
      # 调用API完成关联
      $apiUrl = "https://dev.azure.com/{org}/{proj}/_apis/test/Runs/$testRunId/results/$testResultId?api-version=7.1-preview.6"
      $body = @{
        testCase = @{
          id = $testCaseId
        }
      } | ConvertTo-Json
      Invoke-RestMethod -Uri $apiUrl -Method Patch -Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} -Body $body -ContentType "application/json"
    }
    
  • 步骤3:在Pipeline中添加该脚本任务,确保在PublishTestResult@2之后执行,同时在Pipeline设置中勾选“允许脚本访问OAuth令牌”,开启系统访问令牌权限。

方案3:借助第三方Azure DevOps扩展

可以使用Azure DevOps Marketplace中的第三方扩展,比如Test Results Aggregator或Cypress Test Reporter,部分扩展支持直接将Cypress测试结果与ADO测试用例关联,无需手动编写脚本。

安装对应扩展后,按照文档配置Cypress测试和Pipeline任务,通常只需指定测试用例ID的提取规则(比如从测试名称中匹配前缀),即可自动完成关联。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 17:30:08