sonarqube for python项目未显示任何测试覆盖

2024-10-01 09:19:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我用下面给出的docker组合在我的MAC机器上安装了sonarqube。在

version: "2"

services:
sonarqube:
image: sonarqube
ports:
  - "9000:9000"
networks:
  - sonarnet
environment:
  - SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar
volumes:
  - sonarqube_conf:/opt/sonarqube/conf
  - sonarqube_data:/opt/sonarqube/data
  - sonarqube_extensions:/opt/sonarqube/extensions
  - sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins

  db:
image: postgres
networks:
  - sonarnet
environment:
  - POSTGRES_USER=sonar
  - POSTGRES_PASSWORD=sonar
volumes:
  - postgresql:/var/lib/postgresql
  # This needs explicit mapping due to https://github.com/docker-library/postgres/blob/4e48e3228a30763913ece952c611e5e9b95c8759/Dockerfile.template#L52
  - postgresql_data:/var/lib/postgresql/data

networks:
sonarnet:
driver: bridge

volumes:
  sonarqube_conf:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_bundled-plugins:
  postgresql:
  postgresql_data:

之后我使用了命令

^{pr2}$

使用sonarqube分析项目。在

enter image description here

分析报告如上图所示。如果您注意到了,代码覆盖部分是空白的,即使我已经编写了一些python unittest脚本。请建议一种方法,以便我可以在sonarqube中获得python项目的代码覆盖率报告。提前谢谢。在


Tags: dockerimagedatapostgresqllibconfpluginsextensions
2条回答

SonarQube不计算代码覆盖率。它只显示其他工具提供的结果。在

您必须执行一个计算代码覆盖率的工具(例如Coverage.py),然后添加分析参数:

  • sonar.python.coverage.reportPath-单元测试结果的报告路径
  • sonar.python.coverage.itReportPath-集成测试结果的报告路径

你可以在SonarQube wiki上阅读所有内容:https://docs.sonarqube.org/display/PLUG/Python+Coverage+Results+Import

您需要一个代码覆盖工具来分析单元测试覆盖了多少项目代码。在

如前所述,其中一个工具是coverage。在

coverage工具可用于生成与SonarQube兼容的XML报告,然后将其上载到SonarQube。在

安装后,运行coverage xml。在

在您的sonar-project.properties中添加:

sonar.python.coverage.reportPath=coverage.xml

请记住将自动生成的覆盖率输出文件添加到.gitignore

^{pr2}$

相关问题 更多 >