如何在 devops 中正确显示每个 class 的 Cobertura 代码覆盖率

How to display cobertura code coverage per class in devops correctly

我正在 Azure Devops 中使用单元测试的管道上工作。

因为我们使用的是 OpenEdge(而且 sonarqube 许可证相当昂贵),所以我为分析器文件编写了自己的解析器。它计算我们源代码中的(相关)行,并在测试期间从分析器文件中解析行 运行。 它会相应地计算这个数字(所以我认为问题可能在于我如何构建 cobertura.xml 文件)。

然后我按照这个结构构造一个Coberturaxml:

<coverage timestamp version complexity branches-valid branches-covered lines-valid lines-covered branch-rate line-rate>
<packages>
<package complexity branch-rate line-rate name>
    <classes>
        <class complexity branch-rate line-rate name file-name>
            <methods>
                <method branch-rate line-rate name signature>
                    <lines>
                        <line branch hits number>
                        </line>
                    </lines>
                </method>
            </methods>
            <lines>
                <line branch hits number>
                </line>
            </lines>
        </class>
    </classes>
</package>
</packages>
</coverage>

使用此语法,整体代码覆盖率显示在构建摘要选项卡上。 现在我想在构建中的 "Code Coverage" 选项卡上查看每个 class(或我们的文件)的覆盖率(最终还有每个过程的代码覆盖率,现在已经填写在 下)。

是否可以那样做(我假设管道中的 "Publish Code Coverage" 任务应该解析 Cobertura 文件并相应地显示其内容...)?

或者我在这里犯了一些根本错误?

提前致谢, 雅各

我在 GitHub 上一直在做同样的事情:abl-profiler-converter

我获取报告的方式是将 Cobertura xml 输出提供给报告生成器任务,例如:ReportGenerator