在使用IDEA 的單元測試的時候,生成代碼覆蓋率時遇到了以下問題。
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:498) at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386) at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401) Caused by: 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:498) FATAL ERROR in native method: processing of -javaagent failed at com.intellij.rt.coverage.main.CoveragePremain.premain(CoveragePremain.java:35) at com.intellij.rt.coverage.main.CoveragePremain.premain(CoveragePremain.java:28) ... 6 more Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 at com.intellij.rt.coverage.instrumentation.Instrumentator.performPremain(Instrumentator.java:55) at com.intellij.rt.coverage.instrumentation.Instrumentator.premain(Instrumentator.java:33) ... 12 more Process finished with exit code 1 Exception in thread "main"
開始毫無頭緒,幸虧百度。找到了解決方案,但是其中的原因並沒有弄清楚。
參考博客:https://blog.csdn.net/luzijun1992/article/details/79983710
-
先看一下你自己idea.exe 的位置,這是我的
E:\IntelliJ IDEA\IntelliJ IDEA 2016.1.1\bin
-
找到
idea.exe.vmoptions
這個文件 -
記事本打開最后加入一行
-Djava.io.tmpdir=F:\Temp
,這里要注意F:\Temp
是隨意寫的目錄,但一定要保證它存在。 -
重新打卡IDEA 在運行就可以啦。
-
有的idea工具用的idea64.exe,所以修改的文件是idea64.exe.vmoptions