【问题标题】:SonarJS code coverage is shown as 0SonarJS 代码覆盖率显示为 0
【发布时间】:2018-08-14 12:10:24
【问题描述】:

我正在使用 SonarQube 6.5,并尝试使用 sonar.javascript.lcov.reportPaths 属性导入 lcov.info 文件以进行代码覆盖。

我的构建是使用 Jenkins 完成的。代码在 /path/to/Deploydirectory/parent-project1/project1/ 进行部署和测试,并在 jenkins 工作区 /path/to/jenkins/workspace/BUILD_DEPLOY/parent-project1/project1/coverage 中生成报告。

我使用伊斯坦布尔作为代码覆盖率

"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 出现错误

无法解析 [/path/to/jenkins/workspace/BUILD_DEPLOY/parent-project1/project1/coverage/lcov.info 中的 2 个文件路径, /path/to/jenkins/workspace/BUILD_DEPLOY/parent-project2/project2/coverage/lcov.info], 第一个未解决的路径: /path/to/Deploydirectory/parent-project1/project1/file1.js

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

【问题讨论】:

    标签: sonarqube lcov sonarjs


    【解决方案1】:

    您的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
    

    【讨论】:

      猜你喜欢
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-07
      • 2021-03-01
      • 2015-10-06
      • 2016-11-11
      相关资源
      最近更新 更多