angular - Gitlab CI 找不到 sonarqube 覆盖率报告,在本地工作
问题描述
我有一个通过 gitlab ci 部署的 Angular 应用程序。对托管的 Sonarqube 实例的部署确实通过了,但不幸的是没有任何代码覆盖率报告出现
我的 gitlab yml 文件如下
stages:
- test
- deploy
unittests:
image: markhobson/node-chrome:latest
stage: test
variables:
NODE_ENV: development
before_script:
- npm install
script:
- npm run test
- npm run sonar
production:
type: deploy
stage: deploy
image: ruby:latest
script:
- echo "Heroku api key = $HEROKU_API_KEY"
- echo "Heroku appname = $HEROKU_APP_NAME"
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY
only:
- master
而我的 sonar-project.properties 文件如下
sonar.host.url=HOSTURL
sonar.projectKey=SONARKEYNAME
sonar.login=
sonar.password=
sonar.projectName=SONARKEYNAME
sonar.gitlab.project_id=GITLABURL
sonar.typescript.lcov.reportPaths=/coverage/client/lcov.info
sonar.javascript.lcov.reportPaths=/coverage/client/lcov.info
# --- optional properties ---
sonar.projectVersion=0.0.1
sonar.exclusions=client/node_modules/**, node_modules/**
sonar.sourceEncoding=UTF-8
sonar.verbose=false
sonar.working.directory=.scannerwork
sonar.projectBaseDir=.
sonar.sources=./src/app
sonar.sourceEncoding=UTF-8
sonar.exclusions=node_modules/**,**/*.spec.ts,**/*.css
sonar.test.inclusions=**/*.spec.ts
每当我通过 CI 部署应用程序时,我都会收到以下消息:
Provided LCOV file path: coverage/client/lcov.info. Seek file with the path: /builds/USERNAME/REPONAME/coverage/client/lcov.info
No coverage information will be saved because all LCOV report files cannot be found.
有谁知道如何解决此错误以及为什么在本地运行声纳扫描时不会发生此错误(没有 CI)
解决方案
经过长时间的搜索,结果发现angular.json
设置中没有启用代码覆盖率。我在下面添加了以下内容"test"
:
"options": {
"codeCoverage": true,
"main": "src/test.ts"
}
使用 gitlab CI 正确显示覆盖范围并在本地运行命令
推荐阅读
- angular - 使用 ngModel、ngFor 和 Angular dropDownList
- vb.net - 有什么方法可以关闭自动注册功能,使其忽略同一文件夹中的任何 dll 文件?
- php - 如何编写仅显示一个类别的函数?
- javascript - while 循环一直超时,不知道为什么(Hackerrank 问题)
- web-parts - 人物小部件中的标题显示新人物标题,但在加载时更新为旧标题
- python - 检查数据框的项目是否在另一个数据框内
- r - 如何通过汇总 dplyr 函数循环来自多个数据帧的数据
- python-3.x - 使用 tex 为以下代码在 matplotlib 图中下划线不起作用
- angular - 使用异步管道解决 Angular 模板中的自定义 rxjs 主题
- scala - 在 partitionBy 函数之后获取一列的最后一个视图