可以通过类文件过滤 Jacoco CLI 报告吗
Can Jacoco CLI report be filtered via classfiles
是否可以仅报告 1 个或从 jar 文件中选择性 class(es),例如 *.exec 是为应用程序记录的,但只需要报告 1 class,现在在 --classfiles
中,我们可以指定一个 JAR 文件,例如 /path/trial.jar,但不能超出 /path/trial.jar/pkg1/class,是否有一些选项可以做到这一点。
<path>
in --classfiles <path>
递归扫描,所有找到的 class 文件都用于生成报告,因此它不仅可以指向 JAR 文件,还可以指向包含以下内容的目录JAR 文件和 class 文件,也可以指向单个 class 文件。
例如编译后 Example.java
class Example {
class Inner {
}
public static void main(String[] args) {
}
}
进入目录classes
javac Example.java -d classes
将生成两个 class 文件,如命令 ls classes
所示
'Example$Inner.class' Example.class
生成后jacoco.exec
java -cp classes -javaagent:jacoco-0.8.0/lib/jacocoagent.jar Example
可以使用命令
为整个 classes
目录生成报告
java -jar jacoco-0.8.0/lib/jacococli.jar report jacoco.exec --classfiles classes
将分析两个 class 个文件
[INFO] Loading execution data file /tmp/example/jacoco.exec.
[INFO] Analyzing 2 classes.
或使用命令
为单个 Example.class
生成报告
java -jar jacoco-0.8.0/lib/jacococli.jar report jacoco.exec --classfiles classes/Example.class
而且只有这个class会被分析
[INFO] Loading execution data file /tmp/example/jacoco.exec.
[INFO] Analyzing 1 classes.
因此您可以将 JAR 文件解压到目录中并单独分析其中的任何内容。
是否可以仅报告 1 个或从 jar 文件中选择性 class(es),例如 *.exec 是为应用程序记录的,但只需要报告 1 class,现在在 --classfiles
中,我们可以指定一个 JAR 文件,例如 /path/trial.jar,但不能超出 /path/trial.jar/pkg1/class,是否有一些选项可以做到这一点。
<path>
in --classfiles <path>
递归扫描,所有找到的 class 文件都用于生成报告,因此它不仅可以指向 JAR 文件,还可以指向包含以下内容的目录JAR 文件和 class 文件,也可以指向单个 class 文件。
例如编译后 Example.java
class Example {
class Inner {
}
public static void main(String[] args) {
}
}
进入目录classes
javac Example.java -d classes
将生成两个 class 文件,如命令 ls classes
'Example$Inner.class' Example.class
生成后jacoco.exec
java -cp classes -javaagent:jacoco-0.8.0/lib/jacocoagent.jar Example
可以使用命令
为整个classes
目录生成报告
java -jar jacoco-0.8.0/lib/jacococli.jar report jacoco.exec --classfiles classes
将分析两个 class 个文件
[INFO] Loading execution data file /tmp/example/jacoco.exec.
[INFO] Analyzing 2 classes.
或使用命令
为单个Example.class
生成报告
java -jar jacoco-0.8.0/lib/jacococli.jar report jacoco.exec --classfiles classes/Example.class
而且只有这个class会被分析
[INFO] Loading execution data file /tmp/example/jacoco.exec.
[INFO] Analyzing 1 classes.
因此您可以将 JAR 文件解压到目录中并单独分析其中的任何内容。