问题标签 [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 回答
32255 浏览

junit - 使用 assertTrue 而不是 assertNull 时缺少分支

在 Java/Junit 中,我需要使用一些对象来测试 null。有多种方法可以测试条件,但我一直在使用 assertTrue 进行大多数测试。当我在 assertTrue 中检查空值时,EclEmma 声明它只测试一个分支。

当我手动将语句解析为变量时(例如将结果设置为布尔值并将其传递给 assertTrue),代码覆盖在断言上被认为是完整的,但在变量初始化行上没有。

为什么会这样?这是否与 Java 显然添加的额外字节码有关,如http://sourceforge.net/apps/trac/eclemma/wiki/FilteringOptions所述?任何解决方案(除了使用其他断言语句)。

断言真:

断言真:

断言空:

0 投票
2 回答
12059 浏览

java - 如何使用 jacoco 获得外部 Java 库的代码覆盖率?

如果我有一个使用库(jar 文件)的 java 项目,是否可以获得该 jar 中类的代码覆盖率?

这背后的想法是,我想找出项目所依赖的外部库的比例(比如说 spring、hibernate,或者如果它是一个 scala 项目,它可能是 scala jar,为什么不)被实际使用。我什至想象我可以尝试将它们列出并将它们重新捆绑在一个包含必要的 .class 文件(例如,使用 apache felix 之类的插件)的单个 jar 中,以获得尽可能小的 jar。我不确定我是否真的想这样做,我知道出于多种原因这可能是一个坏主意,但我认为这是一个实验。

我找不到怎么做,jacoco 只报告了我项目中类文件的覆盖率。也许我做错了什么,我正在使用这样的maven插件:

我尝试更改包含标记,但唯一的效果是限制默认值,它仅包含直接在我的项目中的类文件。

提前致谢 !


在oers的回答后编辑:

我发现了如何使用 ant 和 antrun-plugin 来完成它,虽然它非常复杂,但我在使用 antrun 插件版本时遇到了很多麻烦(无法使最新版本工作,即使是基本任务),我真的很想坚持马文。如果有人知道如何用 je jacoco maven 插件而不是 ant 来做同样的事情,我很感兴趣!

ant 的部分解决方案:实际上 jacoco.exec 文件已经包含对我的外部 jar 类的引用;因此,应该告诉报告任务考虑这些 jar,而不是我认为的运行时阶段。这是我使用的 maven 配置(我在http://intellectualcramps.wordpress.com/2012/03/22/jacoco-tycho-and-coverage-reports/上找到了帮助):

0 投票
1 回答
1217 浏览

java - 我可以从 Eclemma 代码覆盖工具 Java 中排除自动生成的代码吗?

是否可以从 eclemma 代码覆盖工具中隐藏我的一些代码(例如自动生成的代码)。在 c# 中有一个选项可以执行此处描述的选项,我们在 Java 中是否有类似的东西?

编辑:我没有使用 ant,我使用 eclipce 的 Eclema 插件,我可以做任何配置来从覆盖工具中排除我的一些代码。

谢谢!

0 投票
2 回答
1470 浏览

maven - Jacoco w/ Jetty + Selenium RC

我回到这里是因为我有一些问题。(我之前发布了关于我正在从事的项目的 2 或 3 个问题,这个问题仍然与这个项目有关)
所以我有一个使用 Maven 构建的 smartGWT Web 应用程序。为了对其进行单元测试,我必须使用 Selenium RC(能够使用 smartClient 提供的 user-extensions.js),并且由于它必须与持续集成兼容,我必须将 webapp 部署在 Jetty 容器上。现在我只剩下一个问题:
如何使用 Jacoco 和 Jetty 让 Sonar 识别我的测试并给我代码覆盖率?

jetty-maven-plugin 中是否有允许我在每次部署应用程序时运行 jacoco-agent 的属性?

提前谢谢,再来一次=)
(对不起我的英语不好)

0 投票
0 回答
3543 浏览

maven - 声纳不阅读 Jacoco 报告

我有一个项目,其集成测试由 maven-failsafe-plugin 运行,单元测试由 maven-surefire-plugin 运行。

我使用 jacoco 生成覆盖率报告:

当我运行 mvn install 时,成功生成了 Jacoco 覆盖率报告。

但是当我运行 mvn -mvn -Pdev sonar:sonar 时,Sonar 使用 Cobertura 插件而不是 Jacoco。

我努力了:

1)在Sonar设置中将jacoco设置为默认覆盖插件[无效]

2) 在命令行中提供 Jacoco 参数(例如,-Dsonar.core.codeCoveragePlugin=jacoco)[效果不佳]

有人有什么主意吗?谢谢。

顺便说一句,我正在使用声纳 2.8

0 投票
1 回答
2711 浏览

maven - Sonar 和 Jacoco:如何?(与 Cobertura 的兼容性)

我知道有很多关于 Sonar 和 Jacoco 没有正确生成报告的问题,但没有一个能帮助我解决我的问题:

这是交易:

我有一个项目使用 Cobertura 来计算代码覆盖率,但我无法更改。Sonar 必须将 Cobertura 用于服务器端。但另一方面,我有这个客户端(我们正在谈论在 java 中使用 smartGWT 的 web 应用程序),它使用 Selenium RC 进行了测试(因为这是测试 smartGWT 的唯一方法)。

Cobertura 无法计算 Selenium 测试的覆盖率,因为这些测试是在已部署的应用程序上完成的。Jacoco 可以计算出来,因为它是作为 java 代理启动的。所以在我的电脑上一切正常。jacoco.exec 生成成功。但似乎 Sonar 无法找到如何读取该文件,或者可能只是 cobertura 和 jacoco 有冲突......

这是 Jenkins 生成的错误:

这是我对surefire插件的配置:

你看到我可能犯的任何错误吗?或者也许我必须为 jacoco jar 或其他东西设置另一条路径?还是要谢谢你的帮助。

0 投票
2 回答
4441 浏览

maven - 添加 JVM 参数和 jacoco-maven-plugin?

只是想知道使用 maven 插件启动 jacoco 代理并向 surefire 添加一些参数是否有用?它会启动 Jacoco 两次吗?

例子 :

0 投票
2 回答
3536 浏览

ant - JaCoCo 报告看起来正确但无法查看源代码

我是 JaCoCo 的新手,并试图弄清楚为什么我生成的 html 报告没有与我的源链接。

覆盖数字看起来是正确的,我可以浏览到每个类,然后是每个方法,但我看不到源。我在 sourcefiles 标签中尝试了许多不同的东西,但没有任何效果。其他人遇到过这个问题吗?这是我的 ant 脚本的片段:

...

...

0 投票
1 回答
8350 浏览

maven - Jacoco 和 Sonar 代码覆盖率?

使用: JaCoCo 0.5.3、Maven2、Sonar 2.14、sonar-maven-plugin 1.8、SùartGWT 3.0
目前正在尝试:获取我的 Selenium 单元测试的 Sonar 的代码覆盖率。
问题:尽管传感器正确启动,但代码覆盖率并未从 0% 开始移动,请分析正确生成的 jacoco.exec。
资源: https ://gist.github.com/2888912 pom.xml

我试图获得代码覆盖率已经大约 2 周了。我将声纳从 2.10 升级到 2.14,更改了每个声纳属性,尝试了插件 jacoco(用于 maven),但我仍然没有得到任何结果。所以如果有人遇到同样的问题并找到了解决方案,你能告诉我你是如何工作的吗?

我很确定我的测试必须产生至少 0.5% 的代码覆盖率。我的 Selenium 测试实际上是在 SeleniumTestLoginEntry.java 中执行的,它有什么影响吗?我必须称它为 TestLoginEntry.java 吗?(测试的类是LoginEntry.java) 我正在使用surefire 来启动JaCoCo 的javaagent(见标签),它实际上生成了jacoco.exec。

请给我一些帮助,我完全迷失了,我只剩下一周的时间来让它工作...... :(
提前致谢。

0 投票
2 回答
2864 浏览

groovy - Sonar + JaCoco 不包括涵盖的 Groovy 代码

我有一个带有单个静态方法的 Groovy 类:

它有一个或几个测试用例:

这导致6/12根据 Sonar/JaCoCo 覆盖的分支:

一半的代码覆盖率

因此,我将代码更改为更...详细。我不认为原始代码“太聪明”或类似的东西,但我让它更加明确和清晰。所以,这里是:

现在,在没有更改任何其他内容的情况下,Sonar/JaCoCo 报告它已被完全覆盖:

JaCoCo 100% 覆盖率

为什么会这样?