如何为 Angular 7 项目设置 sonarqube

Posted

技术标签:

【中文标题】如何为 Angular 7 项目设置 sonarqube【英文标题】:How to setup sonarqube for Angular 7 project 【发布时间】:2020-05-11 03:00:15 【问题描述】:

尝试为 Angular 7 代码库设置 Sonarqube 以进行代码覆盖率分析。 获得授权 cmd 后,我已经安装了 Sonarqube 并在 Admin 中创建了一个项目

"sonar-scanner.bat -D"sonar.projectKey=TestApp" -D"sonar.sources=." -D"sonar.host.url=http://127.0.0.1:9000" -D"sonar.login=5089f6d1cc070b3c9e96273405a7e354721030c7""

试图在 Angular 项目中运行... 它开始扫描项目,但失败了,我是否配置了任何其他来运行扫描

“以下是扫描仪控制台中显示的消息”

INFO: 1024/1024 source files have been analyzed
INFO: Sensor TypeScript analysis [javascript] (done) | time=200377ms
INFO: Sensor JavaXmlSensor [java]
INFO: Sensor JavaXmlSensor [java] (done) | time=256ms
INFO: Sensor html [web]
INFO: Sensor HTML [web] (done) | time=2605ms
INFO: Sensor SonarTS [typescript]
INFO: Since SonarTS v2.0, TypeScript analysis is performed by SonarJS analyzer v6.0 or later. No TypeScript analysis is performed by SonarTS.
INFO: Sensor SonarTS [typescript] (done) | time=20ms
INFO: ------------- Run sensors on project
INFO: Sensor Zero Coverage Sensor
INFO: Sensor Zero Coverage Sensor (done) | time=1038ms
INFO: SCM Publisher SCM provider for this project is: svn
INFO: SCM Publisher 2109 source files to be analyzed
INFO:
INFO:
INFO: SCM Publisher 0/2109 source files have been analyzed (done) | time=28586ms
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 9:48.956s
INFO: Final Memory: 14M/60M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Error when executing blame for file

【问题讨论】:

【参考方案1】:

第 1 步 - 安装 Sonarqube

要安装 Sonarqube,首先从 https://www.sonarqube.org/downloads/. 下载 Sonarqube

第 2 步 - 使用 Angular 配置声纳

运行 - npm install sonar-scanner --save-dev

在 Angular 根目录中创建一个名为 sonar-project.properties 的文件并添加以下属性

sonar.host.url=http://localhost:9000
sonar.login=admin
sonar.password=admin
sonar.projectKey=test-app
sonar.projectName=test-app
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.sources=src
sonar.exclusions=**/node_modules/**
sonar.tests=src
sonar.test.inclusions=**/*.spec.ts
sonar.typescript.lcov.reportPaths=coverage/lcov.info

第 3 步 - 将 Karma 代码覆盖率与 Sonarqube 集成

在你的 package.json 中添加一个名为 sonar 的脚本

"scripts": 
    "sonar": "sonar-scanner"

最后,运行以下命令将 Karma 覆盖与 Sonar 服务器集成,

npm run sonar

您将通过导航到 http://localhost:9000/projects 直接在 Sonar 服务器上获得结果

【讨论】:

我使用的是 SonarQube 5.5,在尝试这种方法后,声纳扫描仪没有索引任何文件

以上是关于如何为 Angular 7 项目设置 sonarqube的主要内容,如果未能解决你的问题,请参考以下文章

Angular - 如何为可选输入属性设置默认值

如何为 Angular 2.0 设置环境?

如何为 Angular 7 包含额外的 postCSS 插件(postcss-preset-env)

在 Angular 项目中,如何为项目单独创建路由文件?

如何为 Angular 6 项目全局添加自定义 CSS 文件

Angular 项目:如何为现有组件树中的每个组件添加模块?