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

如何通过Jenkins Pipeline发布.NET Core测试结果?

如何在Jenkins Pipeline中发布.NET单元测试结果

嘿,看你的现有Pipeline已经搞定了代码拉取、项目构建和单元测试执行,还生成了trx格式的测试报告,差最后一步就能在Jenkins界面里直观展示测试统计和失败用例详情了!下面是补全后的完整方案:

完整可运行的Pipeline脚本

node {
    stage('Checkout') {
        checkout scm
    }
    stage('Build') {
        // 还原依赖并构建项目
        bat "\"C:/Program Files/dotnet/dotnet.exe\" restore \"${workspace}/MyProg.sln\""
        bat "\"C:/Program Files/dotnet/dotnet.exe\" build \"${workspace}/MyProg.sln\""
    }
    stage('Run Unit Tests') {
        // 执行测试并生成指定路径的trx报告
        bat returnStatus: true, 
            script: "\"C:/Program Files/dotnet/dotnet.exe\" test \"${workspace}/MyProg.sln\" --logger \"trx;LogFileName=unit-tests.trx\" --results-directory \"${workspace}/TestResults\""
    }
    stage('Publish Test Results') {
        // 发布测试结果到Jenkins
        publishTestResults(
            testResults: '**/TestResults/*.trx',
            failOnError: false, // 可选:如果测试失败是否终止整个Pipeline,根据团队需求调整
            publishTestAttachments: true // 可选:是否发布测试附件(比如截图等)
        )
    }
}

关键要点解释

  • 明确测试报告路径:我在dotnet test命令里补充了LogFileName和--results-directory参数,这样测试报告会统一生成到${workspace}/TestResults目录下,避免Jenkins找不到报告文件。
  • publishTestResults步骤:这是Jenkins内置的步骤(需要确保你的Jenkins安装了.NET Core插件,它原生支持trx格式的测试报告解析),执行后就能在Jenkins项目页面看到测试通过率、失败用例的详细堆栈信息。
  • returnStatus: true:这个参数的作用是即使测试有失败用例,Pipeline也会继续执行后续的发布步骤,不会直接中断。如果你们团队要求测试失败就终止构建,把这个参数去掉或者改成false就行。

如果你的Jenkins版本比较老旧,不支持publishTestResults,可以考虑安装trx转JUnit格式的插件,然后用junit步骤来发布结果,但现在新版本的Jenkins用publishTestResults是最便捷的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:39:59