누군가가 중복 질문을 내리 뽑기 전에 ....이 주제와 관련된 다른 모든 StackOverflow 답변을 읽었으며 아무 것도 내 질문에 대답하지 않았습니다.EclEmma 코드 커버리지 문제가있는 JMockit
그래서 JMockit 1.19를 사용하고, 아래 Jmockit 및 Junit와
<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>
이클립스 마켓 플레이스를 통해 설치로 내가 EclEmma 2.3.2 플러그인을 사용하고 내 pom.xml 파일 종속성입니다.
그러나 코드 커버리지를 보려고하면 여러 가지 문제가 동시에 발생합니다. 나는 다음과 같은 예외 로그를 얻을 하나
:
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"
성공적으로 내가 실행 JMockit을 얻기 위하여 나는 또한 말씀이 팝업을 얻을
....
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"
JVM을 인수
-javaagent:C:/Users/vn90614/.m2/repository/org/jmockit/jmockit/1.19/jmockit-1.19.jar
를 제공하는 난이 인수 문제에 realted 생각
모든 것을 위해 정말 오래된 버전을 사용하고 있습니다 (JUnit, JMockit, EclEmma). JaCoCo (EclEmma 플러그인 뒤에있는 커버리지 라이브러리)와 JMockit은 이와 같은 문제에 대한 수정 및 개선이 이루어 졌으므로 최신 버전으로 업그레이드 할 수있는 경우에는 사라질 가능성이 큽니다. –
불행히도 이것은 작업을위한 것이며 리포지토리의 버전을 사용해야합니다. 그들이 버전을 업그레이드 할 수 있는지 알게 될 것입니다. – Mason