相关疑难解决方法(0)

SonarQube和Lcov报告无法解析文件路径

我们正在尝试为我们的角度应用程序制作SonarQube代码覆盖率报告.我们使用Karma生成代码覆盖率报告并将其导入SonarQube分析器.

SonarQube已经为我们的项目提供了C#覆盖,现在我们也希望添加JavaScript代码覆盖.

Teamcity调用,Karma和它创建代码覆盖并将lcov文件和报告文件放入src\Planning.Spa\Coverage\report文件夹.

LCOV文件

TN:
SF:E:/a03/work/bb52cb33e083fc9/src/Planning.Spa/Offer/app/app.component.js
FN:5,(anonymous_1)
FN:6,AppComponent
FN:8,(anonymous_3)
FN:9,(anonymous_4)
Run Code Online (Sandbox Code Playgroud)

Teamcity具有以下MSBuild参数,用于生成C#代码覆盖率和JavaScript覆盖率.

SonarQube MSBuild配置

$sonar=%system.MSBUILD_SONARQUBE_RUNNER%\MSBuild.SonarQube.Runner.exe 
begin /k:"com.test:Test" /n:"MyProject" /v:"%build.number%" 
/d:sonar.cs.dotcover.reportsPaths="$coverageReport" 
/d:sonar.cs.nunit.reportsPaths="$testResults" 
/d:sonar.javascript.lcov.reportPaths="coverage\report\lcov.info"
Run Code Online (Sandbox Code Playgroud)

在运行SonarQube分析时,我们收到以下错误

[14:35:56][Step 13/13] 14:35:56.243 WARN: Could not resolve 114 file paths in
 [E:\a03\work\bb52cb33e083fc9\src\Planning.Spa\coverage\report\lcov.info], 
first unresolved path: E:/a03/work/bb52cb33e083fc9/src/Planning.Spa/Offer/app/app.component.js
Run Code Online (Sandbox Code Playgroud)

我们没有找到使用MSBuild runner运行C#和JavaScript的任何示例.也找不到任何与此相关的答案Could not resolve file paths

我们正努力让它在过去两周内发挥作用,但却找不到任何有用的示例或答案.类似的问题在这里这里都没有答案

更新声纳分析更多信息

[14:35:43][Step 13/13] 14:35:43.751 INFO: Base dir: E:\a03\work\bb52cb33e083fc9\src\Planning.Spa
[14:35:43][Step 13/13] 14:35:43.751 INFO: Working dir: E:\a03\work\bb52cb33e083fc9\.sonarqube\out\.sonar\com.Planning_com.Planning_6CC487F0-8283-4351-9B65-F1698B1B804E
[14:35:43][Step 13/13] 14:35:43.755 INFO: Source paths: Offer/App/app.component.js, Offer/App/app.component.js.map, Offer/App/Common/order-by.pipe.js
[14:35:43][Step 13/13] 14:35:43.755 …
Run Code Online (Sandbox Code Playgroud)

javascript istanbul sonarqube karma-coverage sonarjs

5
推荐指数
1
解决办法
2989
查看次数

Sonarqube没有从LCOV检索我的JavaScript报道

我有一个具有以下结构的应用程序:

my-application
  +- pom.xml
  +- app
  |   +- scripts
  |   |   +- app.js
  |   |   +- **/*.js
  |   +- 3rd-party-libs
  +- build
  +- node_modules
  +- test
Run Code Online (Sandbox Code Playgroud)

我创建了pom.xml唯一一个运行SonarQube分析的人.否则,所有任务都由Grunt运行(测试与Karma一起运行).

内容pom.xml如下:

<properties>
    <sonar.language>js</sonar.language>
    <sonar.sourceEncoding>UTF-8</sonar.sourceEncoding>
    <sonar.javascript.coveragePlugin>lcov</sonar.javascript.coveragePlugin>
    <sonar.javascript.lcov.reportPath>build/karma/coverage/lcov.info</sonar.javascript.lcov.reportPath>
    <sonar.exclusions>app/3rd-party-libs/**,node_modules/**</sonar.exclusions>
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
</properties>

<build>
    <sourceDirectory>app/scripts</sourceDirectory>
    <testSourceDirectory>test</testSourceDirectory>
</build>
Run Code Online (Sandbox Code Playgroud)

当我运行时grunt test,它创建一个build/karma/coverage/lcov.info包含以下信息:

TN:
SF:./app/scripts/app.js
FN:16,(anonymous_1)
FN:26,(anonymous_2)
FNF:2
...
Run Code Online (Sandbox Code Playgroud)

在SonarQube分析之后,仪表板显示0%的代码覆盖率.

我怀疑它中的路径SF:是错误的来源.因此,我已经改变了sonar.javascript.lcov.reportPath财产使用另一个lcov.info测试不同的值:app.js,./app.js,app/scripts/app.js,./app/scripts/app.js,但没有工作,保持覆盖率为0%.

我错过了什么?

为了以防万一,我在我的配置中有以下配置karma.conf.js:

coverageReporter: {
  reporters: [ …
Run Code Online (Sandbox Code Playgroud)

javascript code-coverage lcov sonarqube karma-coverage

3
推荐指数
1
解决办法
8312
查看次数