Jacoco:查找外部测试的代码覆盖率

2023-12-28

我最近在 eclipse 中使用 EclEmma 插件来查找应用程序中 JUnit 的代码覆盖率,效果非常好。

在下一步中,我希望能够找到从外部调用我们的应用程序的端到端测试/功能测试的代码覆盖率(它们驻留在单独的服务器上)。

基本上,我们将应用程序打包为 jar(我们使用 maven)并将其部署在服务器上。我们可以在这个位置触发功能测试。

在这种情况下有没有办法找到代码覆盖率?

My 理解代码覆盖率工具的工作原理(以原始语言)是它加载类并根据已命中的代码部分生成报告。因此,根据这种理解,我不需要访问测试代码。我只需要以某种方式plug将代码覆盖率工具添加到我的应用程序 jar 中,每当调用此 jar 中的任何代码时,报告都会更新。我的理解正确吗?

笔记: 如果其他工具可以的话,我愿意使用其他代码覆盖工具。


您可以通过将代理添加到 Java 命令行,在服务器上运行代码,并由 JaCoCo 代理在运行时进行检测。例如,如果您的流程当前启动时使用:

java -jar myApp.jar

你可以将其更改为

java -jar myApp.jar -javaagent:/some/path/jacocoagent.jar

默认情况下,这会将覆盖率数据写入文件jacoco.exec当 VM 终止时,但您可以使用选项覆盖此设置,使您能够通过 TCP/IP 获取覆盖数据。请参阅JaCoCo 代理文档 https://www.jacoco.org/jacoco/trunk/doc/agent.html.

您可以使用以下方法将其格式化为报告(例如 HTML):

java -jar jacococli.jar report jacoco.exec [options]

See the JaCoCo CLI 文档 https://www.jacoco.org/jacoco/trunk/doc/cli.html的选项。

...或者您可以使用 EclEmma 来分析输出。

如果有真正的原因您无法使用代理,作为最后的手段,您可以使用以下方法将类文件静态转换为已检测的类文件:instrument命令输入jacocococli。请参阅JaCoCo“离线仪表”文档 https://www.jacoco.org/jacoco/trunk/doc/offline.html有关这方面的信息。

直接调用代理并使用jacococli.jar是使用 JaCoCo 的最基本方法。由于您使用的是 Maven,因此您可以使用 JaCoCo Maven 插件获得许多相同的效果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jacoco:查找外部测试的代码覆盖率 的相关文章

  • Java 中的 XPath 节点集

    我在 eclipse 中有这段代码 NodeSet nodes NodeSet xPath evaluate expression inputSource XPathConstants NODESET 它给我 NodeSet 上的编译时错误
  • JavaMail Gmail 问题。 “准备启动 TLS”然后失败

    mailServerProperties System getProperties mailServerProperties put mail smtp port 587 mailServerProperties put mail smtp
  • Java程序中的数组奇怪的行为[重复]

    这个问题在这里已经有答案了 我遇到了这个 Java 程序及其以意想不到的方式运行 以下程序计算 int 数组中元素对之间的差异 import java util public class SetTest public static void
  • manifest.mf 文件的附加内容的约定?

    Java JAR 中的 MANIFEST MF 文件是否有任何超出 MANIFEST MF 约定的约定 JAR规范 http download oracle com javase 1 4 2 docs guide jar jar html
  • Java8无符号算术

    据广泛报道 Java 8 具有对无符号整数的库支持 然而 似乎没有文章解释如何使用它以及有多少可能 有些函数 例如 Integer CompareUnsigned 很容易找到 并且似乎可以实现人们所期望的功能 但是 我什至无法编写一个简单的
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 一种使用 Java Robot API 和 Selenium WebDriver by Java 进行文件上传的解决方案

    我看到很多人在使用 Selenium WebDriver 的测试环境中上传文件时遇到问题 我使用 selenium WebDriver 和 java 也遇到了同样的问题 我终于找到了解决方案 所以我将其发布在这里希望对其他人有所帮助 当我需
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • 使用 AWS Java SDK 为现有 S3 对象设置 Expires 标头

    我正在更新 Amazon S3 存储桶中的现有对象以设置一些元数据 我想设置 HTTPExpires每个对象的标头以更好地处理 HTTP 1 0 客户端 我们正在使用AWS Java SDK http aws amazon com sdkf
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • Java - 不要用 bufferedwriter 覆盖

    我有一个程序可以将人员添加到数组列表中 我想做的是将这些人也添加到文本文件中 但程序会覆盖第一行 因此这些人会被删除 如何告诉编译器在下一个空闲行写入 import java io import java util import javax
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是
  • javax.persistence.Table.indexes()[Ljavax/persistence/Index 中的 NoSuchMethodError

    我有一个 Play Framework 应用程序 并且我was使用 Hibernate 4 2 5 Final 通过 Maven 依赖项管理器检索 我决定升级到 Hibernate 4 3 0 Final 成功重新编译我的应用程序并运行它

随机推荐

  • pypy 内存使用量永远增长?

    我有一个复杂的 python 服务器应用程序 它一直持续运行 下面是它的一个非常简化的版本 当我使用 python 运行以下应用程序时 python Main py 它立即使用 8mb 的内存 并保持在 8mb 的内存 这是应该的 当我使用
  • R:使用 documentclass:report 从 bookdown::pdf_book 的标题中删除“章节”部分

    考虑我的标题和第一部分 title asdf author asdf date 13 Januar 2018 documentclass report output bookdown pdf book citation package bi
  • 预提交 Mercurial hook 以停止提交到错误的分支

    我在 Mercurial 存储库中有一个软件 我将我的软件项目打包为 Debian 包 看来做到这一点的标准方法是有一个 Debian 软件包文件的单独分支 哪些生活在debian子目录 我一直遇到的一个问题是我忘记了我是哪个分支 并意外地
  • 在同一个进程中加载​​ musl libc.so 和 gcc libc.so ?

    我有一个用 musl libc 编译的共享库 readelf d libinterop d so Dynamic section at offset 0x8ecb0 contains 22 entries Tag Type Name Val
  • 类型错误:window.open 不是函数

    我在 firebug gt TypeError window open is not a function 上不断收到此错误 code document ready function div click function var link
  • Android底部应用栏导航图标颜色

    我在这样的布局中定义了一个底部栏
  • 查找 之间的差异。并在unix中找到*

    查找 和有什么不一样 与查找 当我尝试在当前目录中搜索文件 即修改时间不超过 20 天 时 我触发了以下查询 find maxdepth 0 mtime 20 上面的命令没有给出任何输出 但是 find maxdepth 0 mtime 2
  • Netbeans 中的删除线是什么意思?

    在 Netbeans 中用 strikethrough 编写的内容意味着什么 例如getObject在下面的例子中 版本 Netbeans 6 8 该方法已被弃用 即被更新的方法取代 您可能应该使用它 换句话说 为了某些向后兼容性 您调用的
  • 重试地理定位请求而不刷新浏览器

    我对 Geolocation api 有一个具体问题 这是我的场景 用户登陆的页面 在 Chrome Android 中 禁用了 GPS 位置 页面上有一个按钮 按钮的onClick触发Geolocation getCurrentPosit
  • Rails 3 迁移:(非主键)列上自动增量?

    我正在寻找一种方法来创建一个像自动 id 列那样自动递增的列 我可能可以在模型中以某种方式处理这个问题 但这看起来很笨拙 我还没有在 Rails 3 中找到任何可以处理这个问题的东西 有没有可用的宝石可以处理这个问题 我很惊讶它还不是一个选
  • SCIPY - 构建约束而不单独列出每个变量

    我正在使用 SCIPY 来优化使用远期价格的存储设施 交易期限为 1 年 根据每月价差 例如 3 月 21 日与 5 月 20 日价差 是否足够高以覆盖可变运营成本 可以从该设施注入和提取天然气 附图代表了问题 这里的值是任意的 与代码中的
  • 基于原型继承的语言中的类使用

    The 以下回答这个问题 https stackoverflow com questions 186244 what does it mean that javascript is a prototype based language很好地
  • 分解字符串并为带有分隔符前面文本的数组设置键?

    有没有办法接受这样的输入 testing one two three setting more testing 并得到这样的东西 array testing one two three array setting more testing
  • 为什么 `map.has()` 不充当类型保护

    我遇到了以下问题 在我的应用程序中 我有一个Map其中一组 lambda 函数与一些函数配对Roles 每个 lambda 需要一个secondParameter并返回一个settings object enum Role ROLE 1 r
  • unity:游戏对象不可见?

    我组合了两个可以显示透明度和截止 Alpha 的着色器 它工作得很好 只有两个小问题 1 在某些特定的摄像机角度下 对象的截止区域是可见的 仅当具有相同着色器的另一个对象位于该对象后面时 2 如果我淡出一个对象 它会变得黑色而不透明 我是着
  • 具有加密/密码保护的 SQLite

    我刚刚学习使用 SQLite 我很好奇这是否可能 数据库文件加密 密码保护数据库的打开 附言 我知道有这个 SQLite Encryption Extension SEE 但根据文档 SEE 是许可软件 和 SEE 永久源代码许可证的成本为
  • IE11间歇性不加载页面

    我们的许多用户报告说 他们在使用 IE11 访问我们的网站时遇到空白页面 有时他们甚至没有得到空白页面 浏览器只是停留在最后访问的页面上 这些用户可以毫无问题地访问其他域 例如 google com 对于出现故障的浏览器 如果这些用户在 I
  • Woocommerce 结账页面内部服务器错误

    我在 woocommerce 的结帐页面中遇到 500 内部服务器错误 虽然订购简单的产品 但它工作正常 但是当与可预订产品一起使用时 预订订单将保存在管理面板中 邮件也会发送 但订单收据不会显示在结帐页面中 在此 wc ajax chec
  • 根据 MA​​TLAB 中的数据值使用标记填充颜色

    我正在使用 matlab 绘制三个数据系列 例如 0 4545 0 7676 10 0 3232 0 5432 20 假设这是一个 100 x 3 矩阵 我们称其为A 也是根据A 1 排序的 第三列是一个附加数字 范围从1到100 我正在使
  • Jacoco:查找外部测试的代码覆盖率

    我最近在 eclipse 中使用 EclEmma 插件来查找应用程序中 JUnit 的代码覆盖率 效果非常好 在下一步中 我希望能够找到从外部调用我们的应用程序的端到端测试 功能测试的代码覆盖率 它们驻留在单独的服务器上 基本上 我们将应用