Surefire插件导致Jacoco插件失效

Surefire插件导致Jacoco插件失效

原理

Jacoco插件在initialize阶段执行prepare-agent目标时会设置argLine参数

argLine set to -javaagent:D:\Develop\Apache\.m2\repository\org\jacoco\org.jacoco.agent\0.8.7\org.jacoco.agent-0.8.7-runtime.jar=destfile=E:\0\springside4\examples\showcase\target\jacoco.exec

Surefire插件在test阶段执行test目标时可能会设置argLine参数,如果有的话

Jacoco插件在test、package或verify阶段执行report目标时会使用argLine参数去查找jacoco.exec文件,如果argLine参数被Surefire插件覆盖了,则会因为找不到jacoco.exec文件而无法产生覆盖率报告

实践

问题:Jacoco无法产生报告,并报告没有exec文件

原因:Jacoco和Surefire都会使用argLine,Jacoco执行prepare-agent目标时生成的argLine在Surefire执行test目标时被覆盖,从而使得Jacoco执行report目标时因为找不到jacoco.exec文件无法产生报告

方案1:删除surefire configuration中的argLine

<!-- <argLine>-ArgLine</argLine> -->

方案2:修改surefire configuration中的argLine

<argLine>${argLine} -ArgLine</argLine>

方案3:添加jacoco execution configuration propertyName jacocoArgLine,修改surefire configuration中的argLine

<configuration>
	<propertyName>jacocoArgLine</propertyName>
</configuration>

<argLine>${jacocoArgLine} -ArgLine</argLine>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值