相关文章推荐

今天在做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,我发现终于可以用啦!!!

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

而使用Emma和JaCoCo 分别出现不显示内容和 报错 的情况。当时是在同学的电脑上跑了测试后没有问题,说明问题在我这台机器上。实验上交之后我也尝试过重新去测试,但是还是老问题,这期间我也按照官方手册上的要求一模一样的去配置,也尝试了各种解决方案,都没有解决。 之后我在玩地平线4的时候遇到了闪退的情况,一查发现是因为系统用户名是中文的缘故,然 正常情况下,测试类所在包结构与被测试的类所在包结构相同,直接点击run tests with coverage就可以运行测试查看 覆盖率 。若包结构不同,但是你有没有权限修改该项目的包结构,那么可以通过配置来查看单测 覆盖率 。 步骤如下: 2.在上面一栏中,点击右侧+号,就可以添加要查看 覆盖 的包或者某一个类,然后点击OK退出。 3.至此,再次点击run test with Coverage就可... Eclipse - Help - Eclipse Marketplace - search EclEmma。点击Installed。 当下面红条消失,即安装完毕。可在Installed中查看已安装插件。点击Uninstall即可卸载。 安装完毕后,运行项目时,右击要运行的 java 文件,不执行run as,执行Coverage as。之后, 发现代码高亮,并出现一个新的Coverage窗口可查看 覆盖率 。如图。 取消颜色高亮很简单,点击Coverage窗口的“x”即可。 安装Coverage插件,通过插件可以在IDE中展示被测代码的 覆盖 情况,配置路径为IntelliJ IDE -> Preferences -> Plugins,搜索Coverage并安装 安装后就可以点击测试用例运行时选择Run with Coverage,或者右键测试类选择Run with Coverage 配置路径 IntelliJ IDE. 摘要之前用 idea 写junit 查看 代码覆盖率 的时候遇到的问题. java .lang.reflect.InvocationTargetException…FATAL ERROR in... 注意点:Replace active suites 选项可以解决,如果问题1和问题2都设置成功后,依旧显示灰色界面问题。3、选择以coverge runner结尾的选项,不同版本可能不同。一般选择 Add to active suites生成报告。1、打开Run/Debug Configurations。问题1:界面没有Code Coverge。可以看到生成Branch选项了。5、选择Use tracing。问题3: 生成报告是灰色。2、选中该工程的项目()2、选项(根据需要设置)4、设置branch。 报错 信息: D:\resource\ java _jdk_1.8.261\bin\ java .exe -ea - java agent:C:\Users\镜\AppData\Local\JetBrains\IntelliJ Idea 2020.2\testAgent\intellij-coverage-agent-1.0.512.jar=C:\Users\镜\AppData\Local\Temp\coverage10args -D idea .test.cyclic.buffer.size=1048576 "-jav... 比如上面 报错 apache-tomcat-8.0.18/webapps/ROOT/WEB-INF/lib/lombok-1.18.26.jar!-info.class问题得以解决。只不过并不是去maven仓库里找jar包,而是去WEB-INF下的lib中找到对应的jar包,删除module-info.class即可。有时可能还 遇到apache-tomcat-8.0.18/webapps/ROOT/WEB-INF/lib/log4j-api-2.10.0.jar的 报错 。这时就要去删除jar包中。
 
推荐文章