jacoco 相关问题

JaCoCo是一个覆盖率分析工具。它作为JVM代理运行,因此不需要脱机检测。

如何从 Jacoco 报告中排除所有 Jetpack Compose 的预览功能?

当我们运行 Jetpack Compose 函数的 Jacoco 代码覆盖率时,我喜欢排除所有预览函数。 我可以使用 @Retention(AnnotationRetention.RUNTIME) @Target(AnnotationTarget.FUNCTION)

回答 2 投票 0

使用 TCP 服务器方法的 Jacoco 仪表

我正在尝试从远程服务器对我的java代码运行集成测试,因此每当我的测试到达我的代码服务器时,jacoco都会记录它。 我是 jacoco 的新手,到目前为止我已经收集到有 tcp ser...

回答 2 投票 0

使用 JaCoCo 的代码覆盖率

我正在尝试使用 JaCoCo-javaagent 传递 VM 参数来获取代码覆盖率 -javaagent:/test/jacoco/jacocoagent.jar=destfile=/test/jacoco/jacoco.exec,includes=com.*,append=true 我是...

回答 3 投票 0

如何在jacoco中获得自动化测试覆盖率?

我的 Web 应用程序在 tomcat 上运行,在单独的项目中,我有调用我的应用程序的所有 api 的测试用例,现在我想检查代码覆盖率,在来自

回答 2 投票 0

AspectJ 与 Jacoco 在报告生成过程中导致“随机失败”

Windows 11 专业版(24H2) Java 21 (21.0.2 2024-01-16 LTS) jacoco-maven-插件 0.8.12 AspectJ 1.9.22.1 春季启动3.3.4 J单元5 我有一个 Spring Boot 服务,我使用 Jacoco maven 插件来

回答 1 投票 0

Jacoco 对 openliberty 集成测试的覆盖范围

我们在项目内的独立模块中的应用程序中进行了集成测试。与此 openliberty 教程中的类似 https://openliberty.io/guides/rest-intro.html#testing-the-service

回答 1 投票 0

如何在不使用Gitlab企业版的情况下使用Jenkins将jaCoCo测试结果推送到Gitlab合并请求?

你能以某种方式将 jaCoCo 完成的测试结果放入 Gitlab 合并请求窗口吗? Jenkins 作业根据给定的 gitlab 存储库进行构建和测试,并由给定合并请求上的 gitlab webhook 触发。 ...

回答 2 投票 0

如何记录java执行路径?

我想知道我的客户如何使用我的应用程序。例如,我有一个 spring-web 应用程序。客户致电服务 100 次。 我想分析每次服务的执行路径。 例如。 1吨...

回答 1 投票 0

使用azure pipelines任务Maven@4时找不到子模块CCReport43F6D5EF

我们正在从 Maven@3 任务迁移到 Maven@4,请参见此处。这对于大多数存储库都适用,但多模型存储库除外。这给了我以下错误: [错误] [错误] 一些

回答 1 投票 0

IntelliJ IDEA 测试 - 如何显示分支覆盖率

在带有 jacoco 的 Eclipse 中,我可以获得分支覆盖百分比。 但在 IntelliJ IDEA 中,我只能在覆盖窗口中获取行和方法覆盖百分比。 如何总结 Int... 中的分支机构覆盖范围

回答 3 投票 0

排除 jacoco 中 pom.xml 中的配置并排除 sonar 中的文件

我有一个 Java Multi maven 项目,我为每个子模块配置了 Jacoco maven 插件,以排除我不需要覆盖率报告的文件。 我虽然成功了,因为我没有看到我排除的这些文件...

回答 2 投票 0

无法使用javaagent生成jacoco.exec文件

我正在使用java代理生成集成测试的代码覆盖率,该测试与被测应用程序分开,并且这些测试使用该应用程序公开的外部接口。我...

回答 1 投票 0

由于 lombok @Data

我使用 jacoco 进行覆盖率报告。当我查看 jacoco 报告时,覆盖范围似乎不错。但在 Sonarqube 中,覆盖率很低,因为它说来自 lombok 的 @Dataannotation 不被覆盖...

回答 5 投票 0

Android Jacoco 请提供原始的非仪器类

尝试将 Hilt 添加到当前已运行 Jacoco 的项目中。 我看到下面的错误日志(代码已编译并运行正常。) 引起原因:java.lang.IllegalStateException:无法处理仪器...

回答 1 投票 0

使用maven升级到Java 11、sonarqube、jacoco会导致错误

将 Java 从 8 升级到 11 后。声纳:声纳无法工作并出现异常 到底。 Java 1.8 在 Sonarqube 7.7 上运行良好,现在在 java 11 和 sonarqube 7.8 上却失败了,除了......

回答 4 投票 0

JaCoCo 无法添加具有相同名称的不同类:org/hamcrest/BaseDescription

嗨,我在运行 JaCoCo 覆盖范围时遇到以下异常: org.jacoco jacoco-maven-插件 嗨,我在运行 JaCoCo 覆盖范围时遇到以下异常: <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.5.8.201207111220</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> Error while creating report: Can't add different class with same name: org/hamcrest/BaseDescription java.lang.IllegalStateException: Can't add different class with same name: org/hamcrest/BaseDescription at org.jacoco.core.analysis.CoverageBuilder.visitCoverage(CoverageBuilder.java:89) at org.jacoco.core.analysis.Analyzer$1.visitEnd(Analyzer.java:79) at org.objectweb.asm.ClassAdapter.visitEnd(Unknown Source) at org.jacoco.core.internal.flow.ClassProbesAdapter.visitEnd(ClassProbesAdapter.java:128) at org.objectweb.asm.ClassReader.accept(Unknown Source) at org.objectweb.asm.ClassReader.accept(Unknown Source) at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:94) at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:115) at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:155) at org.jacoco.core.analysis.Analyzer.analyzeArchive(Analyzer.java:135) at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:158) at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:183) at org.jacoco.maven.ReportMojo.createBundle(ReportMojo.java:280) at org.jacoco.maven.ReportMojo.createReport(ReportMojo.java:256) at org.jacoco.maven.ReportMojo.executeReport(ReportMojo.java:230) at org.jacoco.maven.ReportMojo.execute(ReportMojo.java:208) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 有两种方法可以避免这种情况: 1)重命名其中一个重复项:当涉及到 Maven 项目时,我经常看到这个问题。 即使这两个类位于两个不同的模块中,两个不同的类具有相同的名称也不是一个好主意。 2)排除其中之一:请参阅thisSO线程以获取更多信息。 target文件夹中的某些 jar 或项目文件通常会导致此问题。这就是解决我们 Maven 项目中的问题的方法(参见 Sanjay 的回答 for gradle): <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.7</version> <configuration> <excludes>**/*.jar</excludes> </configuration> </plugin> 请注意,这是适用于我们特定项目的最简单的解决方案。如果您需要进行其他排除,请包装多个 <exclude> 命令,如下所示: <configuration> <excludes> <exclude>**/*.jar</exclude> <exclude>naughty-dependency/**/*.class</exclude> </excludes> </configuration> NB. 此配置部分不会故意将 JaCoCo 附加到任何 <execution> 目标。这样,当 JaCoCo 摔倒时,默认的打包过程就不会中断,而且运行速度也会稍快一些。仅当发出 mvn org.jacoco:jacoco-maven-plugin:prepare-agent test jacoco:report 时才会生成报告,例如我们在 gitlab CI 管道中执行的操作。 我同意rb512。可能出现此错误的另一种情况/区域是,在编译过程中,如果我们使用 JIBX/WST 等或创建动态类文件(在编译时)的类似其他步骤/过程,即我们没有任何有效的对应文件工作区中的源文件(.java/.groovy 等)。 在这种情况下,您的工作区将有额外的类文件,并且当 jacoco 尝试生成报告时,它会因重复的类而出现相同的错误。如果您由于这种情况发现此错误,则必须在运行 jacoco reports 之前删除所有类文件 如果您使用 Gradle(对于 Maven,请在 Maven pom .xml 文件中执行相同操作),请参阅下面的 doFirst 块,该块正在执行此操作。 jacocoTestReport { //cleaning up the JiBx classes to jacoco will not cause problems for CareDiscovery doFirst { delete fileTree (dir: "${buildDir}/classes", include: "**/JiBX_*.class") } group = "Reporting" description = "Generate Jacoco coverage reports after running tests." executionData = fileTree(dir: 'build/jacoco', include: '**/*.exec') reports { xml{ enabled true //Following value is a file destination "${buildDir}/reports/jacoco/xml/jacoco.xml" } csv.enabled false html { enabled true //Following value is a folder destination "${buildDir}/reports/jacoco/html" } } sourceDirectories = files(['src/java','src/main/java', 'src/main/groovy']) classDirectories = files('build/classes/main') } 我遇到了和你一样的问题。事实证明,我的项目文件夹中有两个 jar 包做了同样的事情,尽管只有其中一个位于构建路径中。检查代码中是否有多个 hamcrest jar。 就我而言,问题是由于项目 Jar artefact 中的类而发生的。 Caused by: java.io.IOException: Error while analyzing /opt/jenkins/workspace/MicroService-M_build/microservice/dev/microservice/build/gen/main/resources/uploadassets/myCustomProject.jar@org/apache/commons/beanutils/BasicDynaBean.class. Caused by: java.lang.IllegalStateException: Can't add different class with same name: org/apache/commons/beanutils/BasicDynaBean at org.jacoco.core.analysis.CoverageBuilder.visitCoverage(CoverageBuilder.java:107) 下面是从 jacoco 测试报告中排除自定义 jar 的 gradle 任务 jacocoTestReport { doFirst { delete fileTree (dir: "${buildDir}/gen/main/resources/uploadassets", include: "myCustomProject.jar") } reports { xml.enabled true } } 这解决了我的问题。 删除重复的类并将模块包含到另一个模块,例如: 我有付款和付款合同模块。 我已经在支付模块中注入了支付合同: 实施项目(“:模块:付款:付款合同”)

回答 6 投票 0

Android:gradle 升级到 7.0.x 和 jdk 11 后未生成 Jacoco 代码覆盖率

Android:在 testCoverageEnabled true 的情况下 gradle 升级到 7.0.x 和 jdk 11 后,不会生成 Jacoco 代码覆盖率。它与 gradle 4.2.x 和 jdk 8 完美配合。 我尝试删除

回答 2 投票 0

JaCoCo 与 IntelliJ

所以这个问题可能不是很具体,但我还是要问。 我正在尝试将 JaCoCo 与 IntelliJ 结合使用来收集单元测试的覆盖率报告。然而,我没有任何经验......

回答 9 投票 0

如何使用 jacoco 获取不同存储库中测试的测试覆盖率?

我对这个领域很陌生。 我正在尝试获取在完全不同的存储库下编写的自动化测试用例的测试覆盖率,以使用 Jacoco 进行测试。 我想知道是否可以

回答 2 投票 0

SonarQube - Maven Jacoco 错误 - 无法导入文件的覆盖范围信息,java.lang.IllegalStateException:第 70 行超出文件范围

我在 SonarQube(版本 -SonarScanner CLI 6.0.0.4432 SonarQube Server 版本 10.6.0.92116)构建中遇到以下错误。 15:06:52.321 INFO 正在导入 10 个报告。将日志置于调试模式...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.