问题标签 [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 投票
1 回答
4535 浏览

jenkins - 詹金斯声纳 jacoco

在 jenkins 上构建时,我的 JUnit 测试覆盖不会传播到声纳。声纳上的“单元测试覆盖率”字段保持空白,但“单元测试成功”字段显示正确的值。我正在使用 jacoco 进行测试覆盖。在 jenkins 上,jacoco 的报告运行良好,并在生成的 html 中显示了正确的覆盖率。我只是无法将其用于声纳。

使用 jenkins 的 jacoco 插件,我使用以下参数调用独立的声纳分析。

路径和蚂蚁任务是正确的。也许我错过了一些明显的东西?提前感谢您的帮助。

问候雷德莫

0 投票
2 回答
14566 浏览

java - “没有关于每次测试覆盖率的信息。” 来自 Sonar 和 Jacoco Ant 构建

我正在使用 Ant、Jacoco 和 Sonar。当我运行我的构建时,Sonar 告诉我“没有关于每次测试覆盖率的信息”。和声纳仪表板有我的覆盖结果,但我无法深入了解它们以查看代码。但是,Jacoco 生成的 HTML 报告确实包含深入代码。这是我的报道任务:

我的声纳目标看起来像这样:

有谁知道我错过了什么?

0 投票
5 回答
7312 浏览

java - 声纳 (jacoco) + jmockit 垃圾邮件有例外

我正面临一个开始非常恼人的错误。
这是我所拥有的: 1) Sonar 3.5,它使用 JaCoCo 作为覆盖工具。2) Jmockit lib 使用模拟执行测试。3) 使用 maven 自动化构建过程。

因此,当我首先运行时mvn clean install,这没关系,然后我正在运行mvn sonar:sonar,这里发生了什么:

  • Jmockit 似乎提供了它需要的类。
  • JaCoCo 无法检测已经被 Jmockit 检测的类并吐出大量异常,说不可能检测已经检测的类。然而,Sonar 似乎对这种情况有一个有效的输出。
    所以第一个问题是:我能以某种方式抑制这样的例外吗?这真的很关键,因为我们的 CI 系统上的日志文件大小达到50Mb(!),这是不可接受的。我们的 CI 机器上的此类日志会占用大量可用空间。

以下是我遇到的例外情况:

假设抑制这种异常是不可能的,我对其进行了一些调查,发现 JaCoCo(Sonar 使用的一个工具和一个不能检测已经检测过的类的工具)具有这样的模式offline instrumentation(AFAIK Sonar既不支持这offline instrumentation或可以抑制这样的警告)。这个东西被设计用于这种情况。所以我尝试将 JaCoCo 设置为 maven 中的插件,但我没有这样做,因为 JaCoCo 找不到某些执行文件。当我运行时mvn clean install,会弹出以下错误:

[INFO] --- jacoco-maven-plugin:0.6.2.201302030002:report (report) @ webservice-mws --- [INFO] 由于缺少执行数据文件而跳过 JaCoCo 执行

如果我没记错的话,这个执行文件是 JaCoCo 插件的结果。我非常沮丧,不知道该怎么办。

如果有人可以帮助我,将不胜感激!
提前致谢!

我对 JaCoCo 插件的 pom.xml 设置:

0 投票
1 回答
358 浏览

configuration - Sonar 3.4.1 配置未显示 CodeCoverage 类别——为什么?

我使用的是 Sonar 3.4.1,但是 CodeCoverage 设置没有出现在常规设置配置中。

以前有没有人见过这种情况,GeneralSettings 面板中没有提到 CodeCoverage?

0 投票
1 回答
1707 浏览

eclipse - 使用 ant jacoco 和 junit 的列名 $JACOCODATA 无效

我正在使用 jacoco 来生成我的测试用例报告。但是在构建项目时,我收到以下错误:

它会自动将此 Jacoco 列添加到我的查询中,但我的查询中没有它。为什么会发生这种情况?

当我使用 emma 尝试它时,它被替换为$VRC.. 因此同样的错误..

0 投票
1 回答
347 浏览

java - 来自 MATLAB 的 Java 代码覆盖率

我想测量从 MATLAB 运行的 Java 代码的代码覆盖率,最好使用 EclEmma/jacoco。不幸的是,MATLAB 有自己的自定义类加载器,并且不使用线程上下文类加载器,因此没有明显的方法可以让它进行动态覆盖检测。我曾尝试使用 jacoco 对我的 jar 进行离线检测,但我得到的只是一个空数据文件。

有没有人在从 MATLAB 运行时成功测量了 Java 代码覆盖率,如果是,你是怎么做到的?

0 投票
2 回答
1499 浏览

scala - 声纳 / JaCoCo4sbt / Jenkins

我想知道将 JaCoCo4sbt 的数据插入声纳的最简单方法是什么,在 Jenkins 中我已经安装了声纳和 JaCoCo 的插件。我还在 Sonar 中安装了 JaCoCo 的插件。

我的 sonar-project.properties 文件包含:

詹金斯的工作执行这些命令:

目前我没有将任何代码覆盖率数据输入 Sonar

0 投票
1 回答
23509 浏览

java - Code Coverage with Jenkins

I am being asked to use Jenkins to test code coverage for a Java Project. The issue is I have never used Jenkins and have scarcely little experience with actual code coverage. I have been searching a bit and I have come across JaCoCo and Cobertura as plugs. The issue is everything talking about them is above my head at this point. My question is this, as I understand it Jenkins and JaCoCo/Cobertura are used to run tests(Junit?), and report on how well the handle my code, but where do they get the test? Obviously I should make them, but what kind of files are these(again Junit?) and how do the tools get them?

If you are feeling generous, are there any good introduction level tutorials for these tools?

0 投票
2 回答
3729 浏览

java - 如何使用 Java 7 和 spring-instrument 运行 Jacoco?

由于我在使用带有 Java 7 的 cobertura 时遇到了一些问题 - 我正在尝试Jacoco。我的项目有一个父pom.xml项目和子项目。在一个项目中,我使用 spring 来运行一些集成测试——所以我在这个项目中有这个插件pom.xml

因为我使用 Java 7,所以我在 parent 中设置了这个插件pom.xml

现在,当我使用mvn clean install所有项目时,文件夹中有这个文件/targetjacoco.exec ; 但是这个使用的项目spring-instrument没有这个文件。我认为问题在于Jacoco希望使用asmofspring-instrument但它失败了(但我不确定我是对的)。

Jacoco版本0.6.3.201306030806.

为什么Jacoco在这种情况下无法使用仪器?我该如何克服呢?

我想也许我可以配置maven-compiler-plugin将代码编译为 1.6,然后我就不需要maven-surefire-plugin插件了。是否有意义?

0 投票
6 回答
26074 浏览

java - 尝试资源的 8 个分支 - 可以进行 jacoco 覆盖吗?

我有一些使用资源尝试的代码,在 jacoco 中它只覆盖了一半。所有的源代码行都是绿色的,但我得到一个小黄色符号,告诉我只有 8 个分支中的 4 个被覆盖。

在此处输入图像描述

我无法弄清楚所有分支是什么,以及如何编写覆盖它们的代码。三个可能的地方扔PipelineException。这些是createStageList()processItem()隐含的close()

  1. 不抛出任何异常,
  2. 抛出异常createStageList()
  3. 抛出异常processItem()
  4. 抛出异常close()
  5. processItem()从和抛出异常close()

我想不出任何其他案例,但我仍然只覆盖了 8 个案例中的 4 个。

有人可以向我解释为什么它是 4 of 8 并且无论如何都要击中所有 8 个分支吗?我不擅长解密/阅读/解释字节码,但也许你是...... :) 我已经看过https://github.com/jacoco/jacoco/issues/82,但既不是它也不是问题它非常有帮助(除了指出这是由于编译器生成的块)

嗯,就在我写完这篇文章时,我想到了我上面提到的可能无法测试哪些情况......如果我做对了,我会发布一个答案。我相信这个问题及其答案无论如何都会对某人有所帮助。

编辑:不,我没有找到它。抛出 RuntimeExceptions(不由 catch 块处理)不再覆盖任何分支