【问题标题】:Viewing Code Coverage Results outside of Visual studio在 Visual Studio 之外查看代码覆盖率结果
【发布时间】:2009-07-22 18:18:37
【问题描述】:

我进行了一些单元测试,并获得了一些代码覆盖率数据。现在,我希望能够在 Visual Studio 之外查看代码覆盖率数据,比如在 Web 浏览器中。但是,当我将代码覆盖率导出到 xml 文件时,我无能为力。那里有读者吗?我是否必须编写一个 xml 解析器,然后以我想要的方式显示它(这似乎是一种浪费,因为 Visual Studio 已经这样做了。)必须将我的代码覆盖率结果的屏幕截图作为我的“报告”似乎有点愚蠢 有什么建议吗?

【问题讨论】:

    标签: c# code-coverage code-analysis report


    【解决方案1】:

    这个工具https://github.com/danielpalme/ReportGenerator从覆盖文件中快速生成Html报告。效果很好,不需要复杂的活动,可以很容易地包含在构建过​​程中。

    【讨论】:

      【解决方案2】:

      有一个名为 Visual Coverage (https://github.com/jsargiot/visual-coverage) 的工具。它以 .coverage 文件作为输入,可以将其导出为 clover 或 html。

      github上的页面展示了如何执行,如果你好奇可以看一下代码...

      【讨论】:

      • 请注意,视觉覆盖不会为 C++ 项目输出正确的值
      【解决方案3】:

      您可以使用从 NCoverdotCoverVisual Studio 覆盖率 导入的工具 NDepend 和 visualize code coverage results。该工具可以在彩色树形图中显示code coverage vs. lines of code。此功能对于一目了然地浏览代码的哪些部分被测试覆盖或未被覆盖特别有用。

      你也可以连续写申请code rules written over LINQ queries (CQLinq)like:

      From now, all types added or refactored should be 100% covered by tests

      // <Name>From now, all types added or refactored should be 100% covered by tests</Name>
      warnif count > 0 from t in JustMyCode.Types where
      
        // Match methods new or modified since Baseline for Comparison...
        (t.WasAdded() || t.CodeWasChanged()) &&
      
        // ...that are not 100% covered by tests
        t.PercentageCoverage < 100
      
        let methodsCulprit = t.Methods.Where(m => m.PercentageCoverage < 100)
      
      select new { t, t.PercentageCoverage, methodsCulprit }
      

      ...或者也:

      面板按覆盖搜索可以通过LINQ生成这样的代码查询,并立即显示匹配的代码元素:

      此外,该工具可以构建一个HTML/javascript reports,它将显示违反的代码规则代码查询结果

      【讨论】:

        【解决方案4】:

        现在您可以使用 dotnet 工具生成 html 格式的报告

        dotnet tool install -g dotnet-reportgenerator-globaltool
        
        reportgenerator
        "-reports:Path\To\TestProject\TestResults\{guid}\coverage.cobertura.xml"
        "-targetdir:coveragereport"
        -reporttypes:Html
        

        来源:https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-code-coverage?tabs=linux#generate-reports

        【讨论】:

          【解决方案5】:

          我不能代表导出的 XML 的内容,但我希望它包含您的覆盖数据作为摘要。

          如果您想在 Web 浏览器页面中查看此类 XML 数据,通常的做法是通过编写和运行自定义 XSLT 脚本将其转换为 HTML。这可能会为您提供包含数据的 HTML 文本和表格。

          如果您想将覆盖率数据视为强加在源代码上的装饰,我认为您遇到的问题要困难得多。

          【讨论】:

            【解决方案6】:

            可能有帮助:您可以在“代码覆盖率结果”窗格中打开所有覆盖率数据并将其复制并粘贴到 Excel...

            【讨论】:

            • 这不适用于 Visual Studio Professional,其中不包括代码覆盖率功能
            • 这是要求吗?
            【解决方案7】:

            我使用 NCover 完成所有代码覆盖,您可以轻松导出结果

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-01-16
              • 1970-01-01
              • 2011-03-18
              • 2014-03-27
              • 1970-01-01
              相关资源
              最近更新 更多