问题标签 [jacoco]

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 投票
3 回答
9156 浏览

jenkins - 如何让 Jenkins、Sonar 和 JaCoCo 插件一起为 Eclipse Tycho 插件项目(或者可能是 Cobertura)工作?

我的设置是:

  • 詹金斯 1.448
  • 声纳 2.13
  • 詹金斯声纳插件 1.72
  • Sonar 的 MySql 数据库

我有以下项目:

  • Eclipse 插件项目
  • 使用 Maven
  • 多个模块(父maven项目,源插件项目,测试片段项目)
  • 一个简单的 JUnit 测试,测试源插件项目的一个类

目前的流程是什么:

  • Jenkins 从 SVN 签出父项目
  • Jenkins 使用 Maven 和 Tycho 构建项目及其模块
  • Jenkins 使用 Surefire 执行测试并生成报告
  • Jenkins使用Jenkins Sonar插件启动mvn sonar:sonar执行代码分析
  • 对每个模块进行静态代码分析
  • JaCoCo 失败了

Sonar 具有可用的静态代码分析统计数据,并显示测试成功百分比。唯一缺少的是 JaCoCo 的代码覆盖率……或者甚至可能是 Cobertura 的代码覆盖率。

在这一点上我真的不在乎,我只想要其中一件东西来产生代码覆盖率结果。

Cobertura 似乎无法产生结果,可能是因为 - 它无法检测代码 - 它在错误的位置查找检测的代码 - 它无法处理 Tycho 或单独的源/测试代码设置

JaCoCo 应该能够动态“观察”代码覆盖率,但它的输出是

我究竟做错了什么?我需要在我的 pom.xml 某处启用 JaCoCo 吗?我需要万无一失吗?我需要做什么才能使用 Cobertura?

0 投票
3 回答
6403 浏览

maven - 为sonar2.12(多模块maven)配置jacoco代理

Sonar 最新版本 2.12 集成了 Jacoco 插件,我想在多模块项目中将它用于我的代码覆盖部分。

我有这样的结构

提供者项目的测试用例在测试项目中。当我将声纳中的代码覆盖率插件设置为 jacoco 时,它执行得很好,但组合代码覆盖率没有显示在仪表板上。我看过一个帖子说单个 jacoco.exec 文件可以解决问题,但我无法这样做。

我尝试在我的 pom 中配置以下内容,如下所示

但是在 maven 命令行“mvn clean install”上,我得到了这个错误:

未能在 C:\sonar-2.12\war\sonar-server\deploy\plugins\jacoco\META-INF\lib\org.jacoco.agent-0.5.3.201107060350.jar 中找到 Premain-Class manifest 属性VM 代理库无法初始化:仪器

任何人都可以提供任何帮助吗?

0 投票
1 回答
5857 浏览

jboss - JBoss AS 7 测试套件的代码覆盖率,使用 JaCoCo - jacoco.exec 文件中没有数据

我正在尝试报道 JBoss AS 7。这是我的分支: https ://github.com/OndraZizka/jboss-as/tree/TS-jacoco

当我运行时,mvn clean install -rf testsuite -DallTests -Dcoverage -fae我得到(几乎)空jacoco.exec文件 - 只有一些元数据(大小为几个字节)。使用的 JVM arg 行是:

这一行被传递给 Arquillian 用于启动 JBoss AS 7。测试套件运行,参数被传递(它出现在 AS7 的 boot.log 中),但生成的jacoco.exec文件只有几个字节大小。该报告当然没有显示任何报道。

我究竟做错了什么?

0 投票
1 回答
12249 浏览

code-coverage - JaCoCo 测试覆盖率:如何从报告中排除 jar 内的类?

在 JBoss AS 7 集成测试套件中,我们使用 JaCoCo 进行代码覆盖。我已经有了执行数据。现在生成报告时,我得到“无法添加具有相同名称的不同类:...”所以我必须排除一些罐子。

问题是只有一个类是重复的(org/jboss/osgi/metadata/internal/AbstractPackageAttribute)。我只想排除那个特定的类,而不是整个罐子。

我试过了:

但这不起作用。是否有一些特殊的语法,例如.../foo.jar!**/ClassName.class

0 投票
1 回答
530 浏览

java - groovy代码测试的java代码的代码覆盖率

我有一个小项目,其中主要代码是用 java 编写的,但测试主要是 groovy 代码。如果我使用 JaCoCo 进行代码覆盖(由 Sonar 调用),则代码覆盖不会在我的 java 代码上完成,因为似乎 JaCoCo 在使用 groovy 加载 java 类时不使用其特殊的类加载器。奇怪的是,我记得它以前工作过(在嵌入 JaCoCo 的声纳版本 2.12 之前)。

有谁知道如何修理它 ?

0 投票
1 回答
762 浏览

java - 将 Jacoco 与 Pax-Exam 一起使用

我目前正在开发基于 OSGi 模型的应用程序。我的应用程序的所有测试过程都是使用 Pax-Exam 完成的,它使用 Karaf 创建了一个新的 JVM。

我尝试将 Jacoco 用于我的集成测试代码覆盖率,但它似乎不起作用。当我使用它(使用 maven 插件)时,创建的 jacoco.exec 文件是空的。

由于 Pax-Exam 正在创建一个新的 JVM 来通过 Karaf 进行测试,因此我使用 javaagent 设置了一个 Pax-Exam 选项,以便为将执行测试的新 JVM 使用完全相同的 arg 行。不幸的是,它不起作用。

我已经尝试在没有所有 Pax-Exam/Karaf/OSGi 部分的情况下使用 Jacoco,它运行良好,但我不知道如何使它与我的 OSGi 包一起使用。

我希望有人可以帮忙!

0 投票
0 回答
3183 浏览

maven - Sonar 报告测试类本身的 JaCoCo 覆盖率。这个对吗?我该如何改变?

我们有一个 Eclipse 插件的多模块 Maven 项目。

使用 JaCoCo 生成代码覆盖率报告正在运行,但统计数据似乎是错误的。

正在计算测试类本身的覆盖率,并将其添加到一般代码覆盖率中。

例子:

  • 一个名为 org.myplugin 的插件有 50% 的覆盖率和 100 行代码。
  • 名为 org.myplugin.tests 的测试插件具有 100% 的覆盖率和 100 行代码。
  • 一般代码覆盖率达到 75% 或 150 行代码。

这当然不是真的正确,因为重要的是覆盖率真的只有正常代码的 50%。

这是正常行为吗?我能做些什么来排除测试类的覆盖率?

编辑:以下是我们的几个 POM 文件的相关部分:

项目 POM:

插件POM:

测试插件 POM:

0 投票
1 回答
1331 浏览

java - In Sonar, how do I view test coverage by tests?

我知道我可以深入了解仪表板上的覆盖率小部件并查看代码和分支覆盖率。但是,我想看看每个单独的测试涵盖了哪些源文件和代码行。看起来声纳不支持这种方式。如果不支持,有没有办法可以配置声纳来做到这一点?仅供参考,我们现在正在使用 JaCoCo 进行测试覆盖。任何信息都非常感谢!

0 投票
3 回答
12912 浏览

tomcat - jacoco + tomcat = jacoco.exec,报告零覆盖率。帮助。

我在 Tomcat 上部署了一个 Web 应用程序。在我进入更多细节之前,让我拼出版本。

版本:jdk 1.7,Tomcat - 7.0.19,jacoco -0.5.6

我已将 jdk1.7 添加到 Tomcat。在我添加的 \apache-tomcat-7.0.19\bin\startup.bat 文件中。

我还向 Tomcat 添加了 jacoco 代理。在 apache-tomcat-7.0.19\bin\catalina.bat 我添加了。

现在,当我启动 Tomcat 并点击我的 Web 应用程序时,正如预期的那样,有一个 C:\jacoco.exec 文件。

我现在已经将代码移动到以下目录结构 jacoco.exec /bin/ /coveragereport

现在我使用了http://www.eclemma.org/jacoco/trunk/doc/examples/java/ReportGenerator.java中的 ReportGenerator 类。我在 /coveragereport 目录中有一堆 HTML 格式的报告。但是,所有代码都显示为未触摸。虽然在我启动 Tomcat 之后,我已经访问了http://localhost :/ 并四处浏览。我希望得到报告的覆盖率。

我错过了一些非常基本的东西。请帮忙。

0 投票
1 回答
1559 浏览

java - 从 Sonar 获取 JaCoCo 集成覆盖范围

我正在使用声纳Java Web 服务客户端 API开发应用程序。我想从JaCoCo 插件中获得每个类的集成测试代码覆盖率。这可以用这个 API 完成吗?