SonarQube集成python检测(11)

博客介绍了Sonar检测Python的检测工具。Sonar自带部分检测规则,若要集成Python的覆盖率、单元测试报告和更多代码规则,需集成其他工具。详细说明了在Ant模式下单元测试、覆盖率、外部规则(如pylint)的配置,还推荐将配置写在sonar-project.properties文件中,并展示了配置样例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值