1.使用SonarQube检查python代码

一、依赖

  1. JDK:
  2. 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)
  • (2)docker下载
    docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest
  1. SonarScanner

二、审查本地的项目

  • 打开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 7.9以上版本已不再支持mysql
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容