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

如何在Jenkins中获取多个测试项目的dotCover覆盖率报告

实现dotCover多项目覆盖率报告合并的方案

嗨,别着急!我刚好处理过类似的需求,给你分享两种靠谱的实现方式,帮你把多个测试项目的代码覆盖率报告合并成一个:

方法一:手动分步执行dotCover命令行工具

这是最直接的方式,分三步就能搞定:

  • 第一步:生成单个项目的覆盖率快照
    为每个测试项目单独生成.dcvr格式的覆盖率快照文件,命令示例如下:

    dotcover cover /TargetExecutable:"C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" /TargetArguments:"YourTestProject1\bin\Debug\YourTestProject1.dll" /Output:"Project1_Coverage.dcvr"
    

    把上面的命令复制多份,替换测试项目路径,为每个项目都生成对应的.dcvr文件。

  • 第二步:合并所有覆盖率快照
    用dotCover的merge命令,把所有单个项目的快照合并成一个统一的快照:

    dotcover merge /Source:"Project1_Coverage.dcvr;Project2_Coverage.dcvr;Project3_Coverage.dcvr" /Output:"Combined_All_Projects.dcvr"
    

    注意:多个文件路径用分号分隔,如果路径包含空格,记得给整个路径加引号。

  • 第三步:生成可读的最终报告
    把合并后的快照转换成HTML、XML等易读的格式,以HTML为例:

    dotcover report /Source:"Combined_All_Projects.dcvr" /Output:"Final_Coverage_Report.html" /ReportType:HTML
    

    dotCover支持的报告类型还有XML、JSON、PDF,按需替换ReportType参数即可。

方法二:写批处理脚本自动化完成

如果项目数量多,手动敲命令太麻烦,写个批处理脚本一键搞定所有流程:

@echo off
setlocal enabledelayedexpansion

:: 配置你自己的路径
set DOTCOVER_EXE="C:\Program Files\JetBrains\dotCover\2023.2\bin\dotcover.exe"
set VSTEST_EXE="C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe"
:: 列出所有测试项目的DLL路径
set TEST_PROJECTS=^
"TestProject1\bin\Debug\TestProject1.dll" ^
"TestProject2\bin\Debug\TestProject2.dll" ^
"TestProject3\bin\Debug\TestProject3.dll"

set COMBINED_SNAPSHOT="Combined_Coverage.dcvr"
set FINAL_REPORT="Final_Coverage_Report.html"

:: 清理旧的快照文件
del /q *.dcvr

:: 循环处理每个测试项目,生成单独快照
for %%p in (%TEST_PROJECTS%) do (
    set SNAPSHOT_FILE=%%~np_Coverage.dcvr
    echo 正在生成 %%p 的覆盖率快照...
    %DOTCOVER_EXE% cover /TargetExecutable:%VSTEST_EXE% /TargetArguments:"%%p" /Output:"!SNAPSHOT_FILE!"
)

:: 合并所有快照
echo 正在合并所有覆盖率快照...
%DOTCOVER_EXE% merge /Source:"*.dcvr" /Output:%COMBINED_SNAPSHOT%

:: 生成最终报告
echo 正在生成最终覆盖率报告...
%DOTCOVER_EXE% report /Source:%COMBINED_SNAPSHOT% /Output:%FINAL_REPORT% /ReportType:HTML

echo 操作完成!最终报告已生成:%FINAL_REPORT%
endlocal

使用时只需要替换脚本里的路径配置,双击运行就能自动完成所有步骤。

一些小提醒

  • 确认dotCover的安装路径正确,不同版本的JetBrains工具路径可能略有不同;
  • 如果用的是NUnit或xUnit的测试运行器,替换VSTEST_EXE为对应的运行器路径即可;
  • 执行脚本前确保所有测试项目都已编译完成,否则会找不到测试DLL文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:38:58