SonarQube集成python检测(11)

sonar检测python的检测工具

sonar中的插件python自带一些检测规则,但sonar想要集成python的覆盖率、单元测试报告、和更多的代码规则,需要集成其他python的检测工具

单元测试(Ant模式下)

  • 如上所至项目根目录的sonar-project.properties文件添加如下配置
sonar.python.coverage.reportPath=*coverage-*.xml
  • sonar-project.properties文件配置修改说明为:
PropertyScopeExampleDescription
sonar.python.coverage.reportPathProject-widecoverage-.xmltSINCE 1.1 Ant pattern describing the path to coverage reports, relative to projects root. Leave unset to use the default (“coverage-reports/coverage-.xml”).The reports have to conform to the Cobertura XML format.

覆盖率

  • 通过coverage工具生成覆盖率统计报告(见https://blog.csdn.net/baidu_36943075/article/details/90634181)
  • 报告需要直接使用工具生成的报告
  • 报告生成运行如下命令
coverage run xx/xx_test.py             #运行指定文件
coverage xml xx/xx.py                  #生成xml报告,生成前必须先运行coverage run才行
  • sonar的项目配置文件sonar-project.properties中添加如下配置:
sonar.python.coverage.reportPath=xxxxx
  • sonar-project.properties文件配置修改说明为:
PropertyScopeExampleDescription
sonar.python.coverage.reportPathProject-widecoverage-.xmltSINCE 1.1 Ant pattern describing the path to coverage reports, relative to projects root. Leave unset to use the default (“coverage-reports/coverage-.xml”).The reports have to conform to the Cobertura XML format.

外部规则

pylint

  • 通过pylint生成覆盖率统计报告(见https://blog.csdn.net/baidu_36943075/article/details/90634181)
  • sonar-scanner执行不会运行pylint,可能ant或jenkins集成会运行(未验证)
  • 报告必须直接使用终端报告
pylint xx/xxx.py > xxxx.txt
  • sonar的项目配置文件sonar-project.properties中添加如下配置:
sonar.go.golint.reportPaths=xx/xx/xx
  • sonar的项目配置文件sonar-project.properties中添加如下配置:
sonar.python.pylint=/usr/bin/pylint
sonar.python.pylint_config=.pylintrc
sonar.python.pylint.reportPath=pylint_report.txt
  • sonar-project.properties文件配置修改说明为:
PropertyScopeExampleDescription
sonar.python.pylintSystem-wide/usr/bin/pylintPath to the pylint executable to use in pylint analysis. Set to empty to use the default one (default is pylint).
sonar.python.pylint_configProject-wide.pylintrcPath to the pylint configuration file (relative to project root or absolute) to use in pylint analysis. Set to empty to use the default.
sonar.python.pylint.reportPathProject-widepylint-report.txtSINCE 1.4 Ant pattern describing the path to Pylint report, relative to projects root. No default value. The report have to conform to format “{path}:{line}: [{msg_id}({symbol}), {obj}] {msg}”.
  • 其实这些配置也可以直接在sonar管理端配置,但是为了实现’sonarqube做成服务器,使用各机器安装sonar-scanner扩展使用‘所以强烈推荐这个配置写在配置文件中

配置样例展示

sonar.projectKey=nativeapp
sonar.projectName=nativeapp
sonar.sources=testpython
sonar.exclusions=**/*_test.py,**/test_*.py,**/*.xml,**/vendor/**
sonar.tests=
sonar.test.inclusions=**/*_test.py,**/test_*.py
sonar.test.inclusions=**/vendor/**
sonar.python.coverage.reportPath=**/coverage.xml
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用SonarQube来分析Python代码,你需要按照以下步骤进行操作: 1. 首先,你需要安装SonarQube服务器。你可以从SonarQube官方网站下载并按照它们的安装指南进行安装。 2. 安装完成后,启动SonarQube服务器并确保它在运行状态。 3. 接下来,你需要安装SonarScanner,这是一个用于将代码发送到SonarQube服务器进行分析的工具。你可以从SonarScanner官方网站下载并按照安装指南进行安装。 4. 安装完成后,你需要在你的Python项目中添加一个名为"sonar-project.properties"的配置文件。在该文件中,你需要指定SonarQube服务器的URL、项目的唯一标识符等信息。以下是一个示例配置文件的内容: ``` sonar.projectKey=your_project_key sonar.projectName=Your Project Name sonar.projectVersion=1.0 sonar.sources=. sonar.language=py ``` 请确保将"your_project_key"和"Your Project Name"替换为你的项目的实际值。 5. 确保你已经在你的Python项目中安装了SonarPython插件。你可以在SonarQube服务器的插件管理页面中找到并安装该插件。 6. 最后,通过运行以下命令来分析你的Python代码并将结果发送到SonarQube服务器: ``` sonar-scanner ``` 请确保你在项目的根目录下运行该命令。 完成这些步骤后,SonarQube将会分析你的Python代码,并在SonarQube服务器上生成相应的报告和指标。你可以通过访问SonarQube的Web界面来查看和分析这些报告和指标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值