问题标签 [jacoco-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
886 浏览

gradle - Jacoco 无法在 Gradle 构建中读取执行数据文件

我正在使用 Gradle 6.6.1 和最新的 Jacoco 插件版本。

在我的构建文件中使用以下内容:

如果我运行gradle buildTests jacocoTestReportJacocoTestReport 任务失败并显示“无法读取执行数据文件projectPath /build/jacoco/test.exec”

这是因为执行数据文件是 buildTests.exec 而不是 test.exec。

我的印象是,将任务传递给 executionData() 会导致获取正确的执行数据文件。

如果我有以下情况,我会得到相同的行为:

0 投票
2 回答
172 浏览

gradle - 带有 JacocoPluginExtension 的 NullPointerException

我正在使用最新的 gradle (6.8) 在 Azure DevOps 中运行构建,我得到了 NPE:

我在 build.gradle 有这样的配置:

我在 Azure DevOps 管道中有这样的配置:

任何想法为什么会发生?

0 投票
0 回答
43 浏览

grails - 如何让 sonarqube 拾取 jacoco 测试覆盖率报告

我有使用 jacoco 插件的 gradle 项目

现在我的本地我可以在默认位置报告/jacoco/test/html/index.html 看到测试覆盖率报告

我应该输入任何其他信息吗?

0 投票
1 回答
728 浏览

java - 使用 Gradle 将多个 JaCoCo .exec 文件聚合到一个覆盖率报告中

情况 我正在开发一个运行良好的 Spring Boot 应用程序,但是构建-测试周期需要很长时间,在普通的开发环境中不实用。

所以,我最近决定将我的单元测试和集成测试分开。集成测试基于 Cucumber,而单元测试是纯 JUnit 5 测试。

为此,我使用了 Gradle 插件org.unbroken-dome.test-sets,它很好地创建了相关的 sourceSets 等。

一切运行良好,我的测试按预期执行。当我进行构建时仍会执行单元测试,而当我调用“gradlew intTest”时会执行集成测试。这是设计使然,因为我不想一直执行所有测试。

运行测试后,我还有一个jacoco/test.exec文件和一个jacoco/inttest.exec文件。所有这些都是设计和测试集插件所宣传的。

问题 这是我的问题。当我的所有测试仍在 test-SourceSet 中时,因此在拆分之前并且仅test.exec生成文件时,JaCoCo 报告的覆盖率约为 75%。但是现在我已经拆分了测试并拥有了test.exec文件intTest.exec,JaCoCo 只报告了 15% 的覆盖率,考虑到我的单元测试和集成测试的范围,这几乎是正确的。

问题 我怎样才能让 JaCoCo 同时使用test.execintTest.exec文件来报告覆盖率并允许覆盖率验证任务再次考虑两者?

相关代码 这里是一些相关代码:jacoco.gradle

来自 build.gradle 的片段:

提前感谢您帮助我或指出我正确的方向。

0 投票
1 回答
971 浏览

java - 使用带有 Java 15 的 JaCoCo 插件进行 Gradle 测试失败?

在https://github.com/gradle/gradle/issues/15038中似乎提到了这个问题,但是从该线程中不清楚如何解决它,所以在这里发布。我正在运行 Java 15:

和 Gradle 6.6.1:

我已经开始了一个测试项目,选择Application它的类型,并添加了jacoco插件:

但是,如果我尝试./gradlew test我得到以下错误:

前面提到的 GitHub 问题页面似乎说可以通过指定项目扩展名(https://docs.gradle.org/6.7/userguide/jacoco_plugin.html#sec:configuring_the_jacoco_plugintoolVersion )来解决这个错误,但目前还不清楚我要选择哪个工具版本;我试过了jacoco

但具有相同的错误结果。知道如何解决此错误吗?

0 投票
1 回答
139 浏览

eclipse - 在没有 Maven 或 Gradle 的情况下运行 jacoco 报告

我们希望在我们的一些 Java 项目中覆盖我们的 Jacoco 代码。不幸的是,他们的 maven 和 gradle 配置不包括生成 Jacoco 测试报告。

有 40 多个 Java 项目,我没有时间修复他们所有的 pom.xml 或 gradle 构建文件以添加 jacoco 测试覆盖率报告。扫描它们以查找代码覆盖率的最快方法是什么?有没有办法做到这一点而无需修改 pom.xml 或 gradle 构建文件。

我正在使用 Eclipse IDE

0 投票
1 回答
41 浏览

gradle - Ant Vs Gradle Jacoco 代码覆盖率不同

我们已经从antBuild 工具迁移到 Gradle,并且也将0.7.4 jacoco版本升级到了最新0.8.6版本。

我观察到与如下所示相比,构建jacoco Reports略有降低(~1%) 。Gradle-6.6.1Ant-1.7.0

在此处输入图像描述

蚂蚁编译

我确保Antcompile args 和GradlecompileJava Args 应该匹配。但不确定为什么报告中存在差异?

0 投票
1 回答
256 浏览

spring-boot - 使用 Jacoco 插件排除代码覆盖但不起作用

基本上 sonarqube 使用 jacoco 进行代码覆盖。但我想从覆盖范围中排除几个类。根据我在 pom.xml 中使用下面提到的插件的几个文档。

可悲的是它不起作用。需要帮助。

0 投票
2 回答
794 浏览

spring-boot - 使用 Spring Boot 时使用 JaCoCo 代码覆盖率构建 Gradle 多项目失败

https://docs.gradle.org/current/samples/sample_jvm_multi_project_with_code_coverage.html的示例开始(即这里的代码https://github.com/gradle/gradle/tree/master/subprojects/docs/src/ samples/java/jvm-multi-project-with-code-coverageapplication/build.gradle )并通过更改 为简单地添加 Spring Boot

并更改application/src/main/java/org/gradle/sample/app/Main.java

将打破这个例子(完整的工作,或者更确切地说是非工作的例子:https ://github.com/SamuelBucheliZ/gradle-jvm-multi-project-with-code-coverage/tree/57e57b8bf24ef4208d9a03a361714c916701e599 )。

打电话时

它会失败

我怀疑这可能与https://github.com/jacoco/jacoco/issues/407有关。但是,我的问题是是否有任何方法可以解决此问题。不幸的是, https://docs.gradle.org/current/userguide/jacoco_plugin.html上的官方文档没有提供有关此主题的任何指导。

据我所知,有问题的行是https://github.com/SamuelBucheliZ/gradle-jvm-multi-project-with-code-coverage/blob/57e57b8bf24ef4208d9a03a361714c916701e599/buildSrc/src/main/groovy/myproject.jacoco -aggregation.gradle#L38

删除它将使构建再次工作。但是,代码覆盖率报告是空的。有什么办法可以调整它,所以它只会包含项目本身的代码,而不包含外部jar等?

0 投票
0 回答
74 浏览

android - Jacoco 没有分析接口的内联扩展功能

我在 Android 项目中有以下带有扩展功能的接口

虽然扩展功能有测试,但在生成 Jacoco 测试报告时,我在此文件中看到 0% 的覆盖率。使用 Android Studio 运行覆盖率测试时,我看到了正确的覆盖率。

值得一提的是,Jacoco 和 Android Studio 报告中似乎都涵盖了非内联扩展功能。

我应该如何设置 Jacoco 以myExtensionFunction在覆盖率报告中包含测试?