【问题标题】:Cannot generate html report using DotCover console runner无法使用 DotCover 控制台运行器生成 html 报告
【发布时间】:2020-06-30 14:31:50
【问题描述】:

我正在我的单元测试项目上运行 dotcover 命令行工具。按照https://www.jetbrains.com/help/dotcover/Running_Coverage_Analysis_from_the_Command_LIne.html#的规定,我运行以下命令

C:\files\dotcover cover
    /TargetExecutable="C:\files\MockTestSample\packages\NUnit.ConsoleRunner.3.11.1\tools\nunit3-console.exe"
    /TargetArguments="C:\files\mocktestsample\Tests\bin\Debug\tests.dll"
    /Output="SampleCoverageReport.json"
    /ReportType="JSON"

它以 json 格式精美地生成报告数据。但是当我尝试生成 html 报告时:

C:\files\dotcover\dotcover cover
    /TargetExecutable="C:\files\MockTestSample\packages\NUnit.ConsoleRunner.3.11.1\tools\nunit3-console.exe"
    /TargetArguments="C:\files\mocktestsample\Tests\bin\Debug\tests.dll"
    /Output="SampleCoverageReport.html"
    /ReportType="HTML"

我只是想以 html 格式查看代码覆盖率报告。但是,当我转到我的 SampleCoverageReport.html 文件时,我确实看到了覆盖范围,但我看不到源代码。当我点击一个项目时,它说“没有可用的资源”。 我错过了什么吗?我只是按照文档中的确切内容进行操作。

【问题讨论】:

    标签: c# resharper code-coverage nunit-3.0 dotcover


    【解决方案1】:

    在生成 HTML 报告时,dotCover 会尝试使用编译器保存在 pdb 文件中的路径来查找源代码文件。如果这些路径不再有效(例如,源文件在编译后被移动/删除,或者如果您的应用程序是在其他机器上构建的),则 dotCover 无法将源代码包含到 HTML 报告中。

    从版本 2020.1 开始,将有一个新的命令行参数“SourcesSearchPaths”,您可以在其中指定源代码的实际路径。

    另外请注意,源代码仅适用于覆盖树的方法节点。

    【讨论】:

    • 我正在使用 nunit。影子复制是否有可能导致 .pdb 文件被移动?如果是这样如何解决这个问题?
    • 不,pdb 文件没问题。 dotCover 确实成功找到了 pdb 文件(否则您根本看不到任何覆盖数据)。它找不到您的 *.cs 文件。
    • @morbidCode 您能否在 dotCover 的错误跟踪器 (youtrack.jetbrains.com/issues/DCVR) 中打开一个问题并提供给我您的覆盖率快照(为了获得它,请在没有 'ReportType' 参数的情况下启动 'cover' 命令)?
    • @EkaterinaSolovova 我遇到了类似的问题,有时无法生成报告的“src”部分。我仍然可以看到带有报告摘要的索引页面,但我无法浏览到单个 .cs 文件以直观地查看代码覆盖率。什么会导致这种随机性?我确实验证了所有 pdb 文件都在我的目标目录中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 2017-04-27
    相关资源
    最近更新 更多