IDEA自带的代码覆盖率测试工具为何会报错

今天在做Lab2实验的时候,发现需要测试代码覆盖率,Eclipse上可以使用插件EclEmma,但是由于本人用的IDEA(个人觉得IDEA太香啦!),然后又发现IDEA有自带的测试代码覆盖度的功能

就是这个!(对于我这个懒癌患者来说真是太舒服了,但是没想到后面的事才是真坑!)

我拿一个Lab1的测试代码,想试试这个功能,没想到直接给我来了一大堆报错???(黑人问号.jpg)

 

就是这样的报错!!之后我就上网寻找解决办法,找了一会发现了个这个办法

参考 IDEA 上 使用Junit+Coverage(覆盖率)报错_menduo的博客-CSDN博客

就是修改根目录下的vmoptions文件(需要看自己的IDEA是idea.exe还是idea64.exe,修改自己对应的其文件)

“记事本打开最后加入一行-Djava.io.tmpdir=F:\Temp ,这里要注意 F:\Temp 是随意写的目录,但一定要保证它存在。然后重新启动IDEA”

我按照他的方法修改了,但是没用。我就去找其它方法(个人猜想可能是IDEA的版本不同,导致上面博主的方法失效)

 

 

在网上看到还可以用JaCoCo,我就又尝试了一下这个方法,但是仍然有报错!!

java.io.FileNotFoundException: C:\Users\¼ÖÊ:À\.IntelliJIdea2019.3\system\coverage\SoftwareConstruction$TurtleSoupTest.exec (文件名、目录名或卷标语法不正确。)

之后我看到似乎是因为我在当初设置windows用户名的时候设置成我自己的名字了,我是在一条评论底下看见一个老哥说的JaCoCo会在C盘文件目录下创建一下东西,但是用户名是中文的话就会报错,这位老哥说他之后重装系统了(我一看,好家伙,我还是找其他法子吧,至于这个JaCoCo为什么会报错,到底是不是用户名是中文的原因,我也不太清楚,也希望如果有大佬看见能解答一下!感谢!)

之后我就想用Emma

(IDEA:没想到吧,我又报错了)我真是欲哭无泪啊,这个Emma插件好像会导致JDK7报错,系统建议咱用IDEA coverage runner(咱也不知道JDK11有没有解决)我也就没继续深究这个方法了

功夫不负有心人!终于在我的一顿狂找之下,发现了下面这个解决方法

IDEA 单元测试Junit Coverage报错_野狼飞飞的博客-CSDN博客

在Help -> Edit Customer VM Option里面修改

在最后一行加上

-Djava.io.tmpdir=D:\Java\Temp

D:\Java\Temp这个目录估计也是任意,但是要确保存在

重启IDEA,我发现终于可以用啦!!!

希望这篇博客可以帮助到有需要的人!也感谢上面两位博主的分享!同时如果有什么其它的方法欢迎大家提出!

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值