在声纳中用Python测试/测试覆盖率没有出现?

2024-05-13 17:32:33 发布

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

我正在通过sonar runner运行一组相当简单的python项目,并且在显示测试时遇到问题。

我运行的是Sonar3.2.1和PythonPlugin1.1。覆盖率报告是以前生成的。

我有以下几套:

sonar.dynamicAnalysis=reuseReports
sonar.core.codeCoveragePlugin=cobertura
sonar.python.coverage.reportPath=coverage.xml

不管我现在做什么,报道都不会出现。

我的测试与我的源文件在同一文件夹中。。。这可能是问题所在吗?有没有要求源代码是如何布局的,以便覆盖报告能够被声纳正确地分析?

编辑:添加更多注释。。。

  • 它是一个多项目的python实例。我在那里有三个项目。其他一切似乎都在声纳报告上显示得很好。我为每个文件定义了基目录和源目录,coverage.xml文件已经预先生成到每个文件的基目录中。
  • coverage小部件显示,但显示:

    Code coverage
    -
    Unit test success
    0 tests
    
  • 我在运行sonar runner时也看到:

    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
    

Tags: 文件项目info目录报告coverage覆盖率xml
2条回答

“sonar.python.coverage.reportPath”必须指向覆盖文件相对于“sonar project.properties”文件的路径。通常,这些临时文件是在temp文件夹中生成的,比如“target”或“bin”。所以您的配置应该更像:

sonar.python.coverage.reportPath=target/coverage.xml

也有这个问题,pytest没有生成一个格式正确的覆盖报告sonarqube可以利用什么。在pytest生成覆盖率报告之后,我运行了coverage xml -i,这个命令生成了一个格式正确的覆盖率报告,sonarqube可以理解这个报告。

相关问题 更多 >