如何为 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 7 包含额外的 postCSS 插件(postcss-preset-env)