一、依赖
- JDK:
- 下载的路径:https://www.oracle.com/java/technologies/downloads/#jdk17-windows
- 下载完以后双击安装。(默认路径:C:\Program Files\Java)
- 配置环境:我的电脑右击属性>高级系统设置>环境变量>添加(D:\Program Files\Java\jdk-17.0.1\bin)
- sonarqube
- (1)本地下载
- 下载地址: https://www.sonarqube.org/downloads/
下载页面.png - 下载较慢,下载后为压缩包,进行解压
- 以windows为例:根目录\sonarqube-9.1.0.47736\bin\windows-x86-64,在以上目录中,点击StartSonar.bat运行
- 网页上打开:http://localhost:9000/,出现界面即为成功(初始账号密码:admin/admin)
- 下载地址: https://www.sonarqube.org/downloads/
- (1)本地下载
- (2)docker下载
docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest
- SonarScanner
- 本地审查需要下载,结合jenkins不需要
- 下载地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
下载.png - 下载以后进行解压,并把(根路径\sonar-scanner-cli-4.6.2.2472-windows\bin)添加到系统的环境变量中
二、审查本地的项目
- 打开http://localhost:9000/后,创建一个项目
- image.png
- 填写项目的名称
- 填写项目名称.png
- 选择本地的项目
- image.png
- 输入token的名称,产生token,并把token记住
- 产生token.png
- 在本地项目中打开cmd,并将网页中的命令复制下来后运行
sonar-scanner.bat -D"sonar.projectKey=simple-python-pyinstaller-app" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=token"
- image.png
- 运行后可以得到审查的结果
- 结果.png
-
点击code可以查看详细的数据
image.png - 查看方法没有单元测试
- image.png
- 查看问题并处理:
-
测试问题.png
image.png
-
三、设置阀值
- 新增阀值的条件
- image.png
- image.png
- image.png
- 将新增的规则分配给指定的项目
- Image_20211021094307.png
- 从项目中选择使用的规则
- image.png
- 设置阀值为200行以后重新测试,结果为失败
- image.png
四、单元测试覆盖度
- SonarQube不计算代码覆盖率。它只显示其他工具提供的结果
- coverage的官方文档
- 安装coverage:pip install coverage
- 测试覆盖度:coverage run pytest
- 生成报告,并指定报告生成路径:coverage xml -o tests/coverage.xml
- 在项目根目录中的“sonar-project.properties”中增加:
sonar.python.coverage.reportPaths=tests/coverage.xml
五、pycharm插件之SonarLint
1.安装
-
File > setting >Plugins > 搜索SonarLint,下载后重启Pycharm
image.png
2. 设置
- 勾选自动测试,保存后自动检测
-
输入远程服务的地址、账号、密码等,可以连接到远程SonarQube,拉取其中的规则进行审查
image.png
六、安装汉化插件
- 在sonarqube的页面上安装:
- image.png
- 从github上下载jar,下载之后放到sonar安装目录/extensions/plugins 并重启
- 重启后:
- image.png
七、数据库配置
- SonarQube 7.9以上版本已不再支持mysql