【问题标题】:Import AngularJS Unit Test results into Sonarqube将 AngularJS 单元测试结果导入 Sonarqube
【发布时间】:2018-04-03 18:27:30
【问题描述】:

我正在尝试使用 Jasmine 框架和 Karma 将单元测试结果导入 Sonarqube for AngularJS 代码。

我曾尝试使用多个记者,例如 karma-junit-reporter、karma-sonarqube-unit-reporter,并且能够产生结果。

但是,我无法使用“sonar-scanner”将单元测试结果导入 Sonarqube。其他报告(例如 Bug、代码气味、覆盖率)会显示在仪表板中,但单元测试报告不会。

有人可以指导我如何在 Sonarqube 中导入和显示单元测试结果。

Sonarqube 6.5
SonarQube 扫描仪 3.0.3.778
Java 1.8.0_121 甲骨文公司(64 位)
Windows 7 6.1 amd64

声纳扫描仪属性

sonar.projectKey=unit_test
sonar.projectName=js
sonar.projectVersion=1.0
sonar.sources=public/js
sonar.javascript.lcov.reportPaths=reports/coverage/lcov.info
sonar.javascript.karmajstestdriver.reportsPath=reports/junit/

【问题讨论】:

    标签: angularjs unit-testing sonarqube6.3 sonarjs


    【解决方案1】:

    SonarJS 不再提供单元测试的导入,它由 SonarQube 本身提供(从 6.2 开始)。这是documentation 的相关信息。

    【讨论】:

    • 我尝试了测试执行示例并在声纳属性文件中使用了“sonar.testExecutionReportPaths”。声纳扫描仪已成功执行,但在 Sonarqube 仪表板中我无法看到测试报告。声纳属性文件内容如下。 sonar.testExecutionReportPaths=reports/junit/TESTS-results.x‌​ml sonar.sourceEncoding=UTF-8 你能建议还有什么需要注意的吗?
    • 我找到了解决方案并能够成功导入并显示单元测试报告到 Sonarqube
    • Raghav 能否提供您找到的解决方案
    • @Raghav 你找到的解决方案是什么
    【解决方案2】:

    只需设置此属性 sonar.ts.coverage.lcovReportPath=coverage/lcov.info

    sonar.projectKey=DEMO-FORM
    sonar.projectName=DEMO-FORM
    sonar.projectVersion=1.0
    sonar.sourceEncoding=UTF-8
    sonar.sources=src
    sonar.host.url=http://localhost:9000
    sonar.login=e41e6e5cdc17b412e76d0c3c6a6cca77e5517910
    sonar.exclusions=**/node_modules/**
    sonar.inclusions=src/**/*
    sonar.tests=src
    sonar.test.inclusions=**/*.spec.ts
    sonar.ts.tslintconfigpath=tslint.json
    sonar.typescript.lcov.reportPaths=coverage/lcov.info
    

    【讨论】:

    • 问题不是lcov.info,是声纳扫描仪不接受的junits.xml。
    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 2018-09-07
    • 2015-09-30
    • 2016-10-25
    • 2016-01-13
    • 2017-12-11
    • 2015-01-08
    • 2016-08-24
    相关资源
    最近更新 更多