Gradle下不使用jacoco插件,自定义实现单测分支覆盖率等控制

1.背景

项目中没有使用jacoco插件而是使用了jacoco插件依赖的两个jar包,并且规定给jacoco使用。所以不能直接使用jacocoTestCoverageVerification来直接配置规则。

2.探索

观察codeCoverageReport任务中的配置,猜测应该是按照字段属性的名称来配置。反编译jar包中对应的task的class文件发现与规则相关的字段属性叫check,但是直接配置check会配置成gradle的check任务,即检查代码编写质量。再对html进行大小写实验后发现改配置项忽略大小写,于是可以配置成CHECK。接着就是check中的配置。首先是rule,rule里面是limit,如下:

rule{

    limit{

        minimum = 0.9

    }

}

但是一直没有用,不管minimum值为多少,任务都一直能执行成功。发现html是这样配置的: 

html(destdir: buildDir.path + '/reports/jacoco')

3.实现

所以尝试把limit也按照这样配置,最后的配置如下:

CHECK {
    failOnViolation = true
    rule {
        limit(counter: 'LINE', minimum: 0.9)
        limit(counter: 'BRANCH', minimum: 0.8)
    }
}

 终于成功。期间还尝试使用自定义task类的方式,但是依赖配置的是jacoco什么的,运行任务会报AntClassLoader加载不到自定义类,感觉这个坑也挺大的就没有继续往下尝试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卷福。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值