JMockit与EclEmma代码覆盖问题

时间:2017-11-16 01:47:49

标签: exception jmockit eclemma

在有人向我提出重复问题之前,我已经阅读了所有其他与此主题相关的StackOverflow答案,但没有回答我的问题。

所以我使用的是JMockit 1.19,下面是我对Jmockit和Junit的pom.xml依赖项

<dependency>
    <groupId>org.jmockit</groupId>
    <artifactId>jmockit</artifactId>
    <version>1.19</version>
</dependency>


<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.7</version>
</dependency>

我正在使用通过Eclipse Marketplace安装的EclEmma 2.3.2插件。

但是,当我尝试查看代码覆盖时,我立刻遇到了几个不同的问题。

我得到以下异常日志:

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
    at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
Caused by: java.lang.RuntimeException: Class java/util/UUID could not be instrumented.
    at org.jacoco.agent.rt.internal_9dd1198.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:138)
    at org.jacoco.agent.rt.internal_9dd1198.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:99)
    at org.jacoco.agent.rt.internal_9dd1198.PreMain.createRuntime(PreMain.java:55)
    at org.jacoco.agent.rt.internal_9dd1198.PreMain.premain(PreMain.java:47)
    ... 6 more
Caused by: java.lang.NoSuchFieldException: $jacocoAccess
    at java.lang.Class.getField(Class.java:1695)
    at org.jacoco.agent.rt.internal_9dd1198.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:136)
    ... 9 more
FATAL ERROR in native method: processing of -javaagent failed
Exception in thread "main" 

我还有两个弹出窗口说......

popup 1) - "No coverage data has been collected during this coverage session. Please do not terminate the Java process manually from Eclipse."

pupup 2) - "Error while dumping coverage data (code 5013).  com.mountainminds.eclemma.internal.core.launching.AgentServer"

为了让JMockit成功运行,我提供了JVM参数

-javaagent:C:/Users/vn90614/.m2/repository/org/jmockit/jmockit/1.19/jmockit-1.19.jar

我认为这个论点已经适用于该问题

1 个答案:

答案 0 :(得分:1)

好的,所以在经过近一周的工作并询问办公室里的每个人之后,我终于解决了这个问题。我在构建路径上链接了另一个项目,以及导致此问题的原因。它不仅会影响这一点,而且还会导致JMockit,Mockito和PowerMock功能出现大量问题。链接构建路径上的项目将导致测试框架和代码覆盖率的问题。