我的构建是使用Jenkins完成的。
我使用伊斯坦布尔进行代码覆盖,如下所示
"scripts": {
"coverage": "./node_modules/.bin/istanbul cover
node_modules/mocha/bin/_mocha --dir=/path/to/jenkins/workspace/BUILD_DEPLOY/parent-project1/project1/coverage"
},
lcov.info的生成方式如下
TN:
SF:/path/to/Deploydirectory/project1/package/plugins/file1.js
FN:11,convetUTCtoLocal
FN:17,customCallback
FN:26,(anonymous_3)
FN:50,(anonymous_4)
FN:68,(anonymous_5)
FN:95,(anonymous_6)
......
关于SonarQube获取错误
sonrQube配置
sonar.inclusions=**/*.js
sonar.scm.disabled=true
sonar.sources=$WORKSPACE
sonar.java.binaries=$WORKSPACE
sonar.projectBaseDir=/path/to
sonar.javascript.lcov.reportPaths=
/path/to/jenkins/workspace/BUILD_DEPLOY/parent-
project1/project1/coverage/lcov.info,
/path/to/jenkins/workspace/BUILD_DEPLOY/parent-
project2/project2/coverage/lcov.info
sonar.sourceEncoding=UTF-8
发布于 2019-02-28 04:35:12
您的sonar-project.properties
中可能有一些属性与报告冲突,可能是路径问题?
生成lcov.info
文件,并通过sonar.javascript.lcov.reportPaths
(a comma-separated list)告诉声纳扫描仪它在哪里,将正确上传您的覆盖范围。
考虑到使用nyc
NPM模块生成覆盖的情况(或者在您的案例中是istanbul
,只要生成lcov文件),覆盖脚本和声纳配置将如下所示:
package.json
"scripts": {
"coverage": "nyc npm test",
"test": "mocha tests/unit/*.js"
},
sonar-project.properties
sonar.host.url=https://sonarqube.server
sonar.scm.disabled=true
sonar.projectKey=my-app
sonar.projectName=My App
sonar.projectVersion=1.0
sonar.language=js
sonar.sources=src
sonar.javascript.lcov.reportPaths=coverage/lcov.info
sonar.eslint.reportPaths=eslint-report.json
https://stackoverflow.com/questions/51841109
复制相似问题