3

我们有一个包含子模块的 Maven 项目。有一个父 pom.xml,每个子项目都被制作成一个 war 文件。每个子模块都有从 Jacoco 生成的单元测试用例和报告。

现有报告显示了单个模块的单元测试覆盖率,但我们需要在 Tomcat 上提供集成测试范围的代码覆盖率。我们所做的是我们在 Tomcat 文件夹中安装了 jacoco 代理并将其配置为生成 jacoco.exec。当我使用 EclEmma 插件导入 jacoco.exec 时,我们会看到代码覆盖率。

有没有办法从没有源代码的独立 jacoco.exec 生成报告?

4

2 回答 2

5
  1. 从以下 URL 下载 Jacoco 代理 Zip 文件: https ://www.jacoco.org/jacoco/ 选择适合您需要的版本。

  2. 创建具有合适名称的文件夹,我的文件夹位于“C:\jacoco”。在那里提取 Zip 文件的内容。

  3. 打开 CMD 并转到 C:\jacoco

  4. 使用以下命令:

    java -jar jacococli.jar 报告 --classfiles path/of/the/class/files path/of/the/.exec 文件 --html html/report/location --name nameOfTheReport

注意:
1. -jar :我在 Jacoco 中保存了 jacococli.jar。
2. --classfiles : 编译后的java文件的路径。
3. exec文件的路径。
4. --name : HTML 报告标题的名称(标题)

  1. Java 代码覆盖率报告将在您提到的位置生成。
于 2020-02-20T10:14:50.577 回答
1

Jacoco .exec 文件使用非常优化的文件格式,其中包含已执行检查点和未执行检查点的紧凑位集,但不包含有关行号的信息。

因此,要生成任何报告,需要将 .exec 文件应用于包含行号作为调试信息的类文件。

类文件足以生成 xml 报告,同时还需要源来生成 html 报告(为了生成带有彩色线条的 html 页面)。

大多数用于生成报告的 Jacoco 工具允许您指定在哪里找到类和源以正确生成报告,因此如果您可以将这些 exec 文件下载到还有类和源的开发机器上,您将能够生成报告。

于 2017-09-15T17:15:38.257 回答