使用 Jacoco 进行集成测试的代码覆盖率
Code Coverage for Integration tests using Jacoco
我正在将 0.8.1 版的 jacocoagent.jar
作为 java 代理传递,以将服务器上的代码覆盖率记录到我的服务器启动脚本中。但是我看到 jar 中缺少 Pre-main class 属性,因此,我收到以下错误:
Error occurred during initialization of VM
Failed to find Premain-Class manifest attribute in
/u01/jetty_home/jacoco/jacocoagent.jar
agent library failed to init: instrument.
有没有人想过如何解决这个问题?
确保使用正确的 JAR 文件。
lib/jacocoagent.jar
in jacoco-0.8.1.zip
从 JaCoCo homepage 编辑 link 具有以下校验和
$ wget http://repo1.maven.org/maven2/org/jacoco/jacoco/0.8.1/jacoco-0.8.1.zip
$ unzip jacoco-0.8.1.zip
$ md5sum lib/jacocoagent.jar
2873d7006dc9672d84981792df2c5b7a lib/jacocoagent.jar
$ sha256sum lib/jacocoagent.jar
cd40d1c1aea4112adb82049df3f462b60380ce1bb00bdecb1cfdb862e34be8dd lib/jacocoagent.jar
JaCoCo 主页还在 JaCoCo documentation, which contains page "Maven Repository" 上包含 link,并解释了 Maven 中央存储库中完全相同的工件具有 groupId org.jacoco
、artifactId org.jacoco.agent
以及最重要的 分类器runtime
:
Following JAR files are available:
Group ID | Artifact ID | Classifier | Description
-----------+------------------+------------+-------------
...
org.jacoco | org.jacoco.agent | | API to get a local copy of the agent
org.jacoco | org.jacoco.agent | runtime | Agent
...
所以它的文件名是org.jacoco.agent-0.8.1-runtime.jar
$ wget http://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/0.8.1/org.jacoco.agent-0.8.1-runtime.jar
$ md5sum org.jacoco.agent-0.8.1-runtime.jar
2873d7006dc9672d84981792df2c5b7a org.jacoco.agent-0.8.1-runtime.jar
$ sha256sum org.jacoco.agent-0.8.1-runtime.jar
cd40d1c1aea4112adb82049df3f462b60380ce1bb00bdecb1cfdb862e34be8dd org.jacoco.agent-0.8.1-runtime.jar
并且都具有 Premain-Class
属性
$ unzip lib/jacocoagent.jar
$ cat META-INF/MANIFEST.MF | grep Premain
Premain-Class: org.jacoco.agent.rt.internal_c13123e.PreMain
我正在将 0.8.1 版的 jacocoagent.jar
作为 java 代理传递,以将服务器上的代码覆盖率记录到我的服务器启动脚本中。但是我看到 jar 中缺少 Pre-main class 属性,因此,我收到以下错误:
Error occurred during initialization of VM
Failed to find Premain-Class manifest attribute in
/u01/jetty_home/jacoco/jacocoagent.jar
agent library failed to init: instrument.
有没有人想过如何解决这个问题?
确保使用正确的 JAR 文件。
lib/jacocoagent.jar
in jacoco-0.8.1.zip
从 JaCoCo homepage 编辑 link 具有以下校验和
$ wget http://repo1.maven.org/maven2/org/jacoco/jacoco/0.8.1/jacoco-0.8.1.zip
$ unzip jacoco-0.8.1.zip
$ md5sum lib/jacocoagent.jar
2873d7006dc9672d84981792df2c5b7a lib/jacocoagent.jar
$ sha256sum lib/jacocoagent.jar
cd40d1c1aea4112adb82049df3f462b60380ce1bb00bdecb1cfdb862e34be8dd lib/jacocoagent.jar
JaCoCo 主页还在 JaCoCo documentation, which contains page "Maven Repository" 上包含 link,并解释了 Maven 中央存储库中完全相同的工件具有 groupId org.jacoco
、artifactId org.jacoco.agent
以及最重要的 分类器runtime
:
Following JAR files are available:
Group ID | Artifact ID | Classifier | Description -----------+------------------+------------+------------- ... org.jacoco | org.jacoco.agent | | API to get a local copy of the agent org.jacoco | org.jacoco.agent | runtime | Agent ...
所以它的文件名是org.jacoco.agent-0.8.1-runtime.jar
$ wget http://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/0.8.1/org.jacoco.agent-0.8.1-runtime.jar
$ md5sum org.jacoco.agent-0.8.1-runtime.jar
2873d7006dc9672d84981792df2c5b7a org.jacoco.agent-0.8.1-runtime.jar
$ sha256sum org.jacoco.agent-0.8.1-runtime.jar
cd40d1c1aea4112adb82049df3f462b60380ce1bb00bdecb1cfdb862e34be8dd org.jacoco.agent-0.8.1-runtime.jar
并且都具有 Premain-Class
属性
$ unzip lib/jacocoagent.jar
$ cat META-INF/MANIFEST.MF | grep Premain
Premain-Class: org.jacoco.agent.rt.internal_c13123e.PreMain