文章目录
八. 代码质量测试
Sonarquebe server新的物理机
sonar-scanner 直接可以放到jenkins中
代码质量七宗罪
:
- 编码规范:是否遵守了编码规范,遵循了最佳实践。
- 潜在的 BUG:可能在最坏情况下出现问题的代码,以及存在安全漏洞的代码。
- 文档和注释:过少(缺少必要信息)、过多(没有信息量)、过时的文档或注释。
- 重复代码:违反了 Don’t Repeat Yourself 原则。
- 复杂度:代码结构太复杂(如圈复杂度高),难以理解、测试和维护。
- 测试覆盖率:编写单元测试,特别是针对复杂代码的测试覆盖是否足够。
- 设计与架构:是否高内聚、低耦合,依赖最少。
代码测试工具 SonarQube
官方网站:http://www.sonarqube.org/
SonarQube 是一个开源的用于代码质量管理的开放平台,通过插件机制,SonarQube可以集成不同 的测试工具,代码分析工具,以及持续集成工具。
下载地址:https://www.sonarqube.org/downloads/
与持续集成工具(例如 Hudson/Jenkins 等)不 同,SonarQube 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再 加工处理,通过量化的方式度量代码质量的变化, 从而可以方便地对不同规模和种类的工程进行代码质量管理。在对其他工具的支持方面,Sonar不 仅提供了对 IDE的支持,可以在 Eclipse 和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大 量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 SonarQube,此外,SonarQube 的 插件还可以对 Java以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。
SonarQube 简介
7.9.x 版本不再支持 MySQL
https://docs.sonarqube.org/latest/setup/upgrade-notes/
注意内存:4G
基础环境依赖
- 数据库环境依赖:
https://docs.sonarqube.org/latest/requirements/requirements/
数据库要使用 5.6 版本,不支持 5.5 的版本
2. java 环境依赖
- 系统及内核参数:
#使用普通账户启动
useradd -s /bin/bash -m sonarqube
vim /etc/sysctl.conf
vm.max_map_count=524288
fs.file-max=131072
#给sonarqube用户设置
vim /etc/security/limits.conf
sonarqube - nofile 131072
sonarqube - nproc 8192
查看是否修改成功
sysctl -p #生效
ulimit -n
ulimit -u
- 硬件依赖:
CPU/内存/磁盘
部署 SonarQube
1.1.1 mysql-server数据库(老版本支持mysql)
apt-get install mysql-server mysql-client
vim /etc/mysql/mysql.conf.d/mysqld.cnf #配置文件路径
mysql
#创建数据库默认编码 utf-8 并授权
mysql> create database sonar default character set utf8