我正在为一个Django项目创建unitest
安装Sonarqube:
docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest
通过docker image和sonar-scanner使用以下命令:
docker run -v /home/hind/Desktop/map-manager:/usr/src --network="host" sonarsource/sonar-scanner-cli -Dsonar.host.url=http://localhost:9000/ -Dsonar.login=sqp_e7171bd635104a04d29c523243cf54000946ea7f
在此之前,我在我的项目中添加了覆盖率,我创建了23个unitest,除了一个失败之外,其他都运行良好
我运行测试:
coverage run manage.py run test maps
当我运行
sonarqube resultcoverage report
报告显示:
Name Stmts Miss Cover
---------------------------------------------------
app/__init__.py 0 0 100%
app/settings.py 58 10 83%
app/urls.py 12 0 100%
manage.py 13 6 54%
maps/__init__.py 0 0 100%
maps/admin.py 141 62 56%
maps/migrations/__init__.py 0 0 100%
maps/models.py 163 10 94%
maps/templatetags/__init__.py 0 0 100%
maps/tests.py 195 3 98%
---------------------------------------------------
TOTAL 582 91 84%
但是在sonar-scanner中,我得到0.0%的覆盖率,而在unittest中没有:
我想帮助弄清楚如何得到的覆盖率分析和报告为非零,像在命令行为基础的结果如上所示。
1条答案
按热度按时间yr9zkbsy1#
您是否将
sonar.python.coverage.reportPaths
设置为Cobertura格式的XML文件的路径?它在你的www.example.com文件里吗sonar-project.properties?我没看到你在运行声纳扫描仪时在命令行设置它。参见https://docs.sonarqube.org/latest/analyzing-source-code/test-coverage/test-coverage-parameters/#python。sonar.python.coverage.reportPaths
以逗号分隔的Cobertura XML格式的覆盖率报告路径列表。支持通配符。保留未设置以使用默认的coverage-reports/coverage-. xml。
请启用DEBUG声纳扫描仪日志
sonar.verbose=true
并检查您的日志中是否有短语Sensor Cobertura Sensor for Python coverage
。有关详细信息,请参阅https://docs.sonarqube.org/latest/analyzing-source-code/test-coverage/python-test-coverage/。
将来,你应该在https://community.sonarsource.com/上发帖,这是声纳开发人员可以直接回应你的地方。