我目前正在使用 Sonar Qube 6.1 版以及 Istanbul 作为测试运行程序。我看到 lcov.info 文件已生成。下面是它的外观:
TN:
SF:/opt/jenkins_build/workspace/SONAR_QUBE_IMPLEMENTATIONS/Myapp-
CI/public/elements/asset-browser/asset-browser.html
FNF:0
FNH:0
DA:28,2
LF:1
LH:1
BRF:0
BRH:0
end_of_record
TN:
SF:/opt/jenkins_build/workspace/SONAR_QUBE_IMPLEMENTATIONS/Myapp-
CI/public/elements/views/reports-view.html
FNF:0
FNH:0
DA:15,1
LF:1
LH:1
BRF:0
BRH:0
end_of_record
当我运行 Sonar 运行程序时,我在日志中看到以下错误。
02:18:20.322 INFO - Unit Test Coverage Sensor is started
02:18:20.323 INFO - 1/1 source files have been analyzed
02:18:20.325 INFO - Analysing
[/opt/jenkins_build/workspace/SONAR_QUBE_IMPLEMENTATIONS/Myapp-
CI/coverage/lcov.info]
02:18:20.348 WARN - Could not resolve 2 file paths in
[/opt/jenkins_build/workspace/SONAR_QUBE_IMPLEMENTATIONS/Myapp-
CI/coverage/lcov.info], first unresolved path:
/opt/jenkins_build/workspace/SONAR_QUBE_IMPLEMENTATIONS/Myapp-
CI/public/elements/asset-browser/asset-browser.html
这就是我的 sonar.project.properties 的样子:
#-- SonarQube server URL
sonar.host.url=http://localhost:9000/sonar
#-- Required Project Properties
sonar.projectKey=Reporting-App
sonar.projectName=Reporting-App
sonar.projectVersion=1.0
sonar.sources=public
#-- Sonar Quality Profile
javascript.sonar.language=js
#-- Report generated in form of
sonar.issuesReport.html.enable=true
sonar.issuesReport.console.enable=true
#-- Specify if any files to include or exclude
sonar.exclusions=tasks/***,public/bower_components/**,public/_index-inline-
loading-script.js
# Encoding of the source files
sonar.sourceEncoding=UTF-8
#-- Coverage Reports
#sonar.javascript.lcov.reportPaths=coverage/lcov.info,coverage/lcov/lcov.info
sonar.javascript.lcov.reportPath=coverage/lcov.info
Sonar 仪表板显示我的应用程序的覆盖范围为 O%。但是,当我点击 jenkins 的 asset browser.html 和 reports.html 时,它具有正确的覆盖率。到目前为止,这对我来说一直是一场噩梦。
最佳答案
您的报告仅包含 HTML 文件,这些文件不被视为 JavaScript 文件。仅使用属性 sonar.javascript.lcov.reportPath
关于javascript - SONAR 无法发布 Istanbul 尔报告的代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47769620/