如何通过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
相关产品推荐
相关产品推荐

