tal*_*on8 9 python code-coverage sonarqube
我正在通过声纳运行器运行一组非常简单的python项目,并且遇到了让测试显示出来的问题.
我正在使用Python插件1.1运行Sonar 3.2.1.覆盖率报告先前生成.
我有以下几套:
sonar.dynamicAnalysis=reuseReports
sonar.core.codeCoveragePlugin=cobertura
sonar.python.coverage.reportPath=coverage.xml
Run Code Online (Sandbox Code Playgroud)
无论我在这一点上做什么,覆盖范围都没有显示出来.
我的测试与我的源码位于同一文件夹中......可能是问题吗?是否需要如何为覆盖率报告布置源代码以便通过声纳正确地进行分类?
编辑:添加一些笔记......
覆盖小部件显示但显示:
Code coverage
-
Unit test success
0 tests
Run Code Online (Sandbox Code Playgroud)当我运行声纳跑步者时,我也看到了:
10:04:29.641 INFO p.PhasesTimeProfiler - Sensor PythonCoverageSensor...
10:04:29.642 INFO .p.c.CoberturaParser - Parsing report '/home/jenkins/jobs/myproject/workspace/trunk/src/python/coverage.xml'
10:04:29.883 INFO p.PhasesTimeProfiler - Sensor PythonCoverageSensor done: 242 ms
Run Code Online (Sandbox Code Playgroud)小智 8
也有这个问题,并且pytest没有生成一个格式正确的报道报告sonarqube可以利用什么.我coverage xml -i在pytest生成覆盖率报告后运行,并且此命令生成一个格式正确的覆盖报告,sonarqube了解该报告.
小智 5
我遇到了类似的问题,其中 python 测试覆盖率未反映在 SonarQube 中。当coverage.xml 的源文件路径不正确并且SonarQube 在解析xml 报告时无法找到这些源文件时,就会出现此问题。
Coveragepy 上存在针对同一问题的开放错误:https://github.com/nedbat/coveragepy/issues/578和解决方法https://github.com/LibraryOfCongress/concordia/pull/857。但是,这个解决方法对我不起作用。
我最终做了什么:运行我的测试命令(python -m pytest -m unit)生成具有错误路径的coverage.xml后,我运行了coverage xml -i。它会覆盖以前的coverage.xml,并具有源文件的正确路径。
现在 SonarQube 已经有了覆盖范围信息。
“sonar.python.coverage.reportPath”必须指向覆盖文件相对于“sonar-project.properties”文件的路径。通常,这些临时文件是在“target”或“bin”等临时文件夹中生成的。所以你的配置应该更像:
sonar.python.coverage.reportPath=target/coverage.xml
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8663 次 |
| 最近记录: |