Angular学习笔记73:解决lcov.info中文件路径不对从而导致没有覆盖率的问题

解决没有覆盖率的问题

在sonar-scanner 中的覆盖率可以通过属性来指定 typescript 覆盖率的文件目录

sonar.typescript.lcov.reportPaths

在Angular项目中,可以通过:

ng test --code-coverage --watch=false

来生成 lcov.info 文件,sonar 通过读取这个文件来获取当前项目的覆盖率

在之前由于本人的愚蠢,在本地环境中,获取了 Angular 项目的覆盖率,然后将项目挂载到Jenkins的工作目录中,但是由于 lcov.info 中的文件目录不正确,导致sonar一直获取不到覆盖率。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HGJBqS4J-1571728421751)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p226)]

这里的路径在Jenkins中找不到,所以一直拿不到覆盖率。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wBs6SXXx-1571728421753)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p227)]

解决办法

方法一:在知道Jenkins 目录的情况下,将这里的路径更改为Jenkins的工作目录

当前 Jenkins 的目录为:/data/jenkins/workspace/demo,遂修改如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aXS2s9GW-1571728421754)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p229)]

此时在重新构建的就有覆盖率了。

在这里插入图片描述

但是这个方法仅限于零时解决一下,不能用于持续化构建获取sonar 扫描结果

方法二:在Jenkins 工作空间中触发测试从而生成正确目录的覆盖率文件

  1. 修改 Jenkins 的 pipeline script
import groovy.json.JsonSlurperClassic

node {
   
   def appName="demo"; def appVersionCode="13";
   sh "sleep 1"
  def appCodeSonarDi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值