没有检测的 Java 代码覆盖率

标签 java code-coverage

我正在尝试确定使用哪种工具来获取在某种稳定 环境中运行的项目的代码覆盖信息。 这些项目部署为 war 并在 Jboss 上运行。在运行与正在运行的服务器交互的手动/自动测试时,我需要服务器端覆盖。 假设我不能更改项目的构建,因此不能在构建过程中向它们的 jar 添加任何类型的工具。我也无权访问代码。

我已经阅读了一些关于各种工具的资料,它们都在介绍涉及在构建时检测 jar 的技术(顺便说一句 - 这不会影响生产,或者会生成两种输出吗?) 不过,有一个工具 JaCoCo 提到了“on-the-fly-instrumentation”功能。有人可以解释这是什么意思吗?这可以帮助我解决我的局限性吗? 我还听说过使用运行时分析技术进行代码覆盖 - 有人可以帮助解决这个问题吗?

谢谢, 本

最佳答案

AFAIK“on-the-fly-instrumentation”意味着 coveragetool 通过使用特殊的 ClassLoader Hook 到 Classloading-Mechanism 并在加载时编辑 Class-Bytecode。 结果应该与使用 JAR 的“离线检测”中的结果相同。

也看看EMMA , 它支持这两种机制。还有一个 Plugin for Eclipse .

关于没有检测的 Java 代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7969687/

相关文章:

java - 在 XML 中传递 unicode 字符

mstest - 使用 MSTest 的 OpenCover 输出分析相同的程序集两次

linux - SONAR - 使用 Cobertura 测量代码覆盖率

python - Django 测试覆盖率与代码覆盖率

python - 搜索python文件中的所有if条件并在下一行添加打印语句

java - 堆的 PermGen 空间

java.lang.VerifyError : Constructor must call super() or this() before return 错误

java - 将声音文件转换为特定比特率的 wav 并剪切文件的特定部分

java - 编程编译器

javascript - 如何在同一项目中为 java 和 javascript 配置 Sonarqube 扫描器