乐趣区

关于软件测试:代码质量管理平台实战-SonarQube-安装配置及-JaCoCoMaven-集成

SonarQube 是一个用于代码品质治理的开源平台,用于治理源代码的品质。同时 SonarQube 还对大量的继续集成工具提供了接口反对,能够很不便地在继续集成中应用 SonarQube。此外,SonarQube 的插件还能够对 Java 以外的其余编程语言提供反对,对国际化以及报告文档化也有良好的反对。
官网网址:https://www.sonarqube.org/
通过插件模式,能够反对包含 Java,C#,C/C++、PL/SQL、Cobol、JavaScrip、Groovy、Ruby 等二十五种编程语言的代码品质治理与检测,针对不同的编程语言其所提供的剖析形式也有所不同:对于所有反对的编程语言,SonarQube 都提供源了代码的动态剖析性能;对于某些特定的编程语言,SonarQube 提供了对编译后代码的动态剖析性能。
SonarQube 反对多种客户端集成形式,包含但不限于 Scanner 客户端、Ant、Gradle、Maven、Jenkins、IDEA 插件等。比拟罕用的为 Gradle 和 Maven。
SonarQube 并不是简略地将各种品质或覆盖率检测工具的后果(例如 CheckStyle、JaCoCo 等)间接展示给客户,而是通过不同的插件算法来对后果进行再加工,并最终以量化的形式来掂量代码品质,从而不便地对不同规模和品种的工程进行相应的代码品质治理,以便进行有针对性的代码修复或重构。
SonarQube 在进行代码品质治理时,会从以下的七个纬度对我的项目代码品质进行剖析。
Sonar 实际上是一个 Web 零碎,展示了动态代码扫描的后果,后果是能够自定义的,而真正实现代码扫描的是 Sonar Scanner 这个工具,另外同时反对多种语言的原理是它的扩展性,通过插件实现的,也就是 Java Jar 架包,能够在 Sonar 平台上在线装置或者离线装置。
1. 已装置 JDK1.8 环境
2. 已装置 Maven(用于前期与 SonarQube、JaCoCo 的集成)
3. 已装置 MySQ L 数据库(Sonar 默认的数据库是自带 H2 数据库,是很小的嵌入式数据库引擎,这里的配置换成了 MySQL,为了不便通过数据库客户端进行数据查问)
1. 下载 SonarQube,地址为:
http://www.sonarqube.org/down…
2. 配置数据库(上面的 SQL 是指定了 schema 为 sonar,password 为 sonar,其中第四条 SQL 是 localhost 是因为 MySQL 装置在本地)
3. 装置 SonarQube
I. 将下载的 sonar-3.7.zip 包解压至 Windows 某个门路,如 D:\Tools\sonar(如是其余 OS,请抉择对应门路,如 Linux 的 /usr/local/ 等)。
II. 批改 sonar.properties
在 /conf/sonar.properties 文件中,配置数据库设置(默认曾经提供了各类数据库的反对这里应用 MySQL,因而勾销 MySQL 模块的正文),同时因为端口抵触而改成端口为 11000。
III. 在 /bin/ 目录下,运行 /windows-x86-64/StartSonar.bat(因为本 demo 是在 win10 64 位装置的,如果是 Linux 的话,运行 nohup bash sonar.sh start &)
IV. 拜访 http://localhost:11000,如果不是本机就输出 http://[remote IP]:11000,如果你看到下图所示即证实配置胜利。
4. 用 admin/admin(默认)进行登录,并装置汉化包
Chinese pack installation
Chinese pack restart
Chinese pack restart confirm
Well done!

  1. 下载 Sonar Scanner,地址为:
    https://docs.sonarqube.org/di…
  2. 将下载的 sonar-scanner-cli-3.3.0.1492-windows.zip 包解压至 Windows 某个门路,如 D:\Tools\sonar(如是其余 OS,请抉择对应门路,如 Linux 的 /usr/local/ 等)
  3. 批改环境变量
    新增变量:
    SONAR_SCANNER_HOME = D:\Tools\sonar\sonar-scanner-3.3.0
    批改 Path 变量:削减
    %SONAR_SCANNER_HOME%\bin\
  4. 装置 Sonar Scanner
    I. 将下载的 sonar-3.7.zip 包解压至 Windows 某个门路,如 D:\Tools\sonar(如是其余 OS,请抉择对应门路,如 Linux 的 /usr/local/ 等)。
    II. 批改 sonnar-scanner.properties
    在 /conf/sonar-scanner.properties 文件中,设置 SonarQube 服务器。
    III. 到你想检测的工程根目录下新建文件 sonar-project.properties,文件内容如下?,文件中的参数配置,参考 Sonar Analysis Parameters 这篇文章。
    在命令行模式下,在工程的根目录下键入命令“sonar-scanner”,你会看到以下日志:
    运行 sonar-scanner
    接着,从新登录 SonarQube 平台,检测的后果曾经在平台上展示进去
    从上图你能够看进去,连单元测试覆盖率的统计也生成进去了,次要起因为在该 maven 我的项目之前曾经集成了 Jacoco 插件(具体 Maven 与 Jacoco 的集成请参考我的另外一篇文章)。
    1. 该我的项目为 maven 我的项目,并且 Jacoco 曾经通过 POM 文件集成到我的项目中,具体步骤请参考我的另外一篇文章。
    2. 该集成计划其实还是首先通过 maven package 命令去生成对应的覆盖率报告,而后通过 sonar scanner 间接应用该覆盖率报告并通过肯定算法加工并展现到 SonarQube 的界面下来。
    1. 在我的项目根目录的 sonar-project.properties 文件中,削减以下配置内容:
    2. 在 SoarQube 登录 admin,并通过在【配置 - 利用市场】下找到 Jacoco 插件并装置和重启。
  5. 在我的项目根目录下,运行 mvn package,当 build 胜利的时候 Jacoco 的后果就会产生在 target/site/jacoco 文件夹下。
    maven package
  6. 接着,在我的项目根目录下运行命令 sonar-scanner,如果看到以下后果证实曾经覆盖率曾经能够在 SonarQube 上查阅。
    sonar scanner
    以上,后续持续补充如何通过 SonarLint 整合到 IntelliJ IDEA,并同时如何整合到 Jenkins 实现自动化测试。
    本文遵循 CC 4.0 BY-SA 版权协定,原文链接:
    https://blog.csdn.net/justyma…
    相干文章
    一文搞懂测试左移和测试右移的 Why-How-What
    精准化测试技术解读与平台构建最佳实际
    霍格沃兹测试学院中高级测试开发名企定向培养打算正在热招中。
    附 - 测试左移和测试右移局部 - 实战纲要,具体完整版纲要请入群征询。
退出移动版