【发布时间】:2013-09-18 09:53:28
【问题描述】:
我正在将 SonarQube 用于 Javascript 项目。 在仪表板中,我看到单元测试成功率为 100.0%,但我没有看到单元测试覆盖率的值。
我正在使用 JSCover 创建一个 LCOV 文件,并在 sonar-project.properties 文件中将其传递给 Sonar:
sonar.javascript.lcov.reportPath=app-test/target/phantom/jscover.lcov
在我看来,声纳运行器在执行期间正在读取正确的文件:
...
10:17:47.111 INFO - Sensor LCOVSensor...
10:17:47.112 INFO - Analysing C:\Users\Ubi60\.jenkins\jobs\T2Client\workspace\app-test\target\phantom\jscover.lcov
10:17:47.131 INFO - Sensor LCOVSensor done: 20 ms
...
以下是我的 jscover.lcov 文件中的几行:
SF:C:/Users/Ubi60/.jenkins/jobs/T2Client/workspace/app-test/target/phantom/Dashboard/app/store/DeviceDataStore.js
FNF:0
FNH:0
DA:4,1
DA:10,14
DA:12,14
DA:13,1
end_of_record
SF:C:/Users/Ubi60/.jenkins/jobs/T2Client/workspace/app-test/target/phantom/Dashboard/app/store/FollowUnitStore.js
FNF:0
FNH:0
DA:4,1
DA:10,14
DA:12,14
DA:13,1
end_of_record
...
我已经尝试恢复路径中的斜线,但没有成功。
有什么建议吗?
【问题讨论】:
-
您是否在执行 JSCover 的同一位置运行 SonarQube 分析?通常发生的情况是单元测试在文件夹“Foo”中运行,而 SonarQube 分析在文件夹“Bar”中运行:从那里,SonarQube 无法理解用于引用 LCOV 报告中 JS 文件的绝对路径。
-
我从不同的位置运行 SonarQube,所以我尝试手动更改 LCOV 报告中的绝对路径,但结果是一样的 - 没有。在 Sonar 中哪里可以找到我应该在 LCOV 报告中使用的正确路径?
-
在您的示例中,您应该在“C:/Users/Ubi60/.jenkins/jobs/T2Client/workspace/app-test”文件夹中触发 SonarQube 分析。
标签: javascript unit-testing code-coverage sonarqube sonar-runner