簡體   English   中英

sonarqube for python項目沒有顯示任何測試覆蓋率

[英]sonarqube for python project not showing any test coverage

我使用下面給出的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分析項目。

在此輸入圖像描述

分析報告如上所示。 如果你注意到,代碼覆蓋部分是空白的,即使我已經編寫了一些python unittest腳本。 請建議一種方法,以便我可以在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

您需要一個代碼覆蓋工具來分析單元測試覆蓋了多少項目代碼。

如上所述,其中一個工具是coverage

coverage工具可用於生成與SonarQube兼容的XML報告,然后將其上載到SonarQube。

安裝完成后,運行coverage xml

在你的sonar-project.properties添加:

sonar.python.coverage.reportPath=coverage.xml

請記住將自動生成的coverage輸出文件添加到.gitignore

.coverage
coverage.xml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM