jacoco 是否检测未使用 类
Does jacoco detect unused classes
Jacoco,正如我所知道的 java 中的所有其他分析功能一样,取决于 java agents/instrumentation.
Java 检测只能在加载 class 时影响字节码。
我想知道是否可以通过 Jacoco 检测未使用的 classes?显然,可能有 class 是 "dead" 并且反过来从未被 ClassLoader 加载。
是的,如果您尚未使用 Jacoco,则指定 -verbose:class
可能更容易。
我只是 运行 一个测试:我创建了一个名为 Delete.java 的文件,该文件从未被任何其他方法调用。生成的 Jacoco 报告显示删除 class 覆盖率为 0%。
当测试 运行 执行后生成覆盖率输出(HTML 报告等)时,JaCoCo 会在 运行time 类路径中扫描额外的 类在测试执行期间尚未加载,因此它们也可以被检测并包含在输出中。
我在自己的代码覆盖工具 (JMockit Coverage) 中实现了同样的机制,它也依赖于 java.lang.instrument
。这是对所有相关 类 进行覆盖检测的唯一方法。
Jacoco,正如我所知道的 java 中的所有其他分析功能一样,取决于 java agents/instrumentation.
Java 检测只能在加载 class 时影响字节码。
我想知道是否可以通过 Jacoco 检测未使用的 classes?显然,可能有 class 是 "dead" 并且反过来从未被 ClassLoader 加载。
是的,如果您尚未使用 Jacoco,则指定 -verbose:class
可能更容易。
我只是 运行 一个测试:我创建了一个名为 Delete.java 的文件,该文件从未被任何其他方法调用。生成的 Jacoco 报告显示删除 class 覆盖率为 0%。
当测试 运行 执行后生成覆盖率输出(HTML 报告等)时,JaCoCo 会在 运行time 类路径中扫描额外的 类在测试执行期间尚未加载,因此它们也可以被检测并包含在输出中。
我在自己的代码覆盖工具 (JMockit Coverage) 中实现了同样的机制,它也依赖于 java.lang.instrument
。这是对所有相关 类 进行覆盖检测的唯一方法。