sonarqube覆盖率是0的几种原因
jacoco没有正常生成报告
sonarqube显示的单元测试覆盖率,依赖于junit,如果要在maven test的过程中生成覆盖率需要使用jacoco。
sonarqube的覆盖率是读取的jacoco生成的信息,所以第一步是检查jacoco是否有正常的生产测试报告
检查target\site\jacoco目录下面是否有报告生成,然后查找jacoco没有生成报告的原因,比如有没有通过的测试,tes过程被 skip,没有导入surefire插件所有没有触发覆盖率的记录等等。
PrepareForTest模拟了被测试类
使用testMe生成的单元测试代码,选用Powermock模版默认会加上@PrepareForTest({被测试类.class}),这样会导致没有sonarqube没有覆盖率
@RunWith(PowerMockRunner.class)
@PrepareForTest({GroupServiceImpl.class})
@PowerMockIgnore({"javax.management.*", "javax.script.*"})
public class GroupServiceImplTest {
}
在maven插件里面指定排斥路径的时候不小心指定了一个父路径
比如要测试的包是 com.lomi.goods.service.impl.xxxxServerImpl
<sonar.coverage.exclusions>
**/goods/**,
**/annotation/**
</sonar.coverage.exclusions>
能耍的时候就一定要耍,不能耍的时候一定要学。
--天道酬勤,贵在坚持posted on 2024-09-03 11:12 zhangyukun 阅读(1137) 评论(0) 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步