报告生成

注意:此功能不支持黑盒测试。

HTML/CSV 报告

菜单条目报告 > 生成 HTML/CSV 报告 允许导出所选执行的代码覆盖率统计信息(按方法、源文件、执行等)。它可以列出手动验证和未执行代码的部分。

EMMA-XML 报告

选择菜单项 报告 > 以 EMMA-XML 格式导出统计信息 允许以 EMMA-XML 格式导出代码覆盖率统计信息。输出包含了与 EMMA 兼容的全局统计信息。这允许在支持 EMMA 的工具中使用 Coco,特别是提供一个简单的方法来使用 Coco 与像 Jenkins CI 这样的持续集成服务器。

EMMA 为覆盖率定义了四个类别:类、方法、块和行。在 Coco 中它们的含义如下

EMMA 类别含义
classes如果一个类中的一个方法被调用,则认为该类已执行。不在类中的代码位于类 ""(空)中。
methods方法被调用时覆盖。
blocks语句块级别的覆盖率。
lines行代码覆盖率(如果编译时带有行覆盖率支持)。
conditions决策/条件覆盖率(如果编译时带有决策/条件覆盖率支持)。

Coberatura XML 报告

菜单项 报告 > 以 Cobertura-XML 格式导出统计信息 允许以 Cobertura-XML 格式导出代码覆盖率统计信息。输出包含了与 Cobertura 兼容的全局统计信息。这允许在支持 Cobertura 的工具中使用 Coco,特别是提供一个简单的方法来使用 Coco 与像 Jenkins CISonarQube 这样的持续集成服务器。

由于报告格式的限制,Coberatura 报告中的统计信息计算方式略有不同。事实上,报告是行覆盖率和条件覆盖率的一个组合。

每个语句块、决策和条件仪器的结束都被计为一个 Cobertura 条件。例如,函数的结束就会被标记为一个需要满足的条件。

报告格式还要求具有条件的每一行也必须在行覆盖率级别进行仪器化。这并不总是真实的(例如,对于空函数),因此在这种情况下我们人工添加了一些仪器化值。最后,如果一个仪器化语句跨越了多行,则需要为每一行生成仪器化数据。

所有这些都会影响类、方法和源代码的统计计算,但得到的数值与其他报告格式中的数值是可以比较的。

SonarQube XML 报告

菜单项报告 > 以 SonarQube-XML 格式导出统计数据允许将代码覆盖率统计以SonarQube-XML 格式导出。

这个报告主要基于行覆盖率(lineToCover)和每一行都有附加属性,指示该行的分支覆盖率(branchesToCovercoveredBranches)。在主窗口中使用选定的覆盖率方法突出显示的每个语句块、决策和条件仪器化都被计为 XML 报告中的一个分支。

JUnit 报告

菜单项报告 > 导出 JUnit 报告允许将测试结果作为 JUnit 报告导出。此报告不包含覆盖率数据,仅列出每个测试项的测试执行结果(即通过失败)。

文本报告

单击菜单项报告 > 生成文本报告将在表中以每行一个执行/未执行项的形式生成一个小型文本报告。可以为执行或未执行行指定不同的行格式。

以下为支持的转义序列:

  • %f:绝对源代码文件名
  • %r:相对于当前构建目录的源代码文件名
  • %l:行号
  • %c:列号
  • %m:说明
  • %t:源代码片段
  • %e:正在执行仪器化的测试列表

例如,将字段未执行代码片段设置为%f:%l: %m将创建包含所有未执行代码部分的一个文本文件。每一行看起来像这样

foo.cpp:55: Unexecuted: 'return;'

Coco v7.2.0©2024 The Qt Company Ltd.
Qt及其相关标志是芬兰和其他国家/地区的商标