前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Clover:解决Java8和Cobertura的问题以及解决方法

Clover:解决Java8和Cobertura的问题以及解决方法

原创
作者头像
Criss@陈磊
修改2020-06-11 17:29:57
1.3K0
修改2020-06-11 17:29:57
举报
文章被收录于专栏:测试技术圈

最近在使用EvoSuite和Cobertura的时候,Cobertura报错最后的代码覆盖报告什么都没有。发现问题的第一反应就是Cobertura和Jacoco一样了吗?难道也是字节码注入的问题?但是我的其他的项目并没有出现问题,这样我又回到了原来的正确解决而问题的轨道上。

解决思路

有一个项目的小伙伴反馈我们一直在使用的智能测试框架EvoSuite哑火了,我也感到莫名其妙。为什么呢,因为我们已经在内部很多项目在使用这个框架了,为什么这个框架在这里不行了呢?我马上找到项目的master,要了项目的git权限。从自动生成单元测试导致执行测试全部尝试了一遍,发现问题并不是在执行evosuit的时候出现新,而是在执行测试覆盖插件的时候出现的,下面是出错信息。

代码语言:javascript
复制
INFO: Cobertura: Loaded information on 0 classes.
........
INFO: Cobertura: Saved information on 0 classes.

第一次遇见,我赶紧去google上查找了一下,发现Cobertura和Java8就是会有这个问题,网络上的方法全部尝试了一遍,比如升级这个插件的版本等根本解决不了问题。

最后的解决办法是换到了代码覆盖的工具,代替工具是Clover。

Clover

Clover是一款曾经收费的代码覆盖率查询插件,它可以配合JUnit等测试插件,对代码测试结果进行分析说明。就冲着曾经还收费这个事情应该还是很有优势的。

开源地址:https://bitbucket.org/atlassian/clover

在Mvn中引入如下配置:

代码语言:javascript
复制
<build>
    <plugins>
    <plugin>
        <groupId>com.atlassian.maven.plugins</groupId>
        <artifactId>clover-maven-plugin</artifactId>
        <version>4.1.2</version>
        <configuration>
        <excludes>
            <exclude>**/*_ESTest.java</exclude>
            <exclude>**/*_ESTest_scaffolding.java</exclude>
        </excludes>
        </configuration>
    </plugin>
    </plugins>
</build>

然后使用mvn clover:setup test clover:aggregate clover:clover就可以获得单元测试代码覆盖报告了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决思路
  • Clover
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档