python - python 项目的 sonarqube 没有显示任何测试覆盖率

标签 python unit-testing sonarqube sonar-runner sonarqube-scan

我使用下面给出的 docker compose 在我的 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:

之后我使用了命令

sonar-scanner

使用sonarqube分析项目。

enter image description here

分析报告如上图。如果您注意到,代码覆盖部分留空,即使我已经编写了一些 python 单元测试脚本。请提出一种方法,以便我可以在 sonarqube 中获取我的 python 项目的代码覆盖率报告。提前致谢。

最佳答案

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

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

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

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

关于python - python 项目的 sonarqube 没有显示任何测试覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48359923/

相关文章:

python - 通过多个字符串选择 pandas 列

python - 使用Python中的unittest库进行代码测试

wpf - 测试此命令

python - matplotlib mySQL 空白图

Python - 重新排序 csv 中的列

c# - 从c#转python好不好?

java - 如何在 Java 中比较 SQL 语句的功能相等?

python - 忽略 python 中的 SonarQube 警告

scala - 在 Scala 代码中未发现路径遍历漏洞

jenkins - Sonar-Gerrit Jenkins 插件结果不明确