声纳中Python的测试/测试覆盖没有出现吗?

2022-02-24 00:00:00 python code-coverage sonarqube

问题描述

我通过Sonar-Runner运行一组非常简单的Python项目,在显示测试时遇到问题。

我运行的是带有Python插件1.1的Sonar 3.2.1。覆盖范围报告是以前生成的。

我有以下设置:

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

无论我此时执行什么操作,覆盖范围都不会显示。

我的测试与我的源文件位于同一文件夹中.这会是问题所在吗?要让声纳正确分析覆盖报告,是否需要如何布局源代码?

编辑:再添加几个备注.

  • 为多项目python实例。我在那里有三个项目。其他一切似乎都正确地显示在声纳报告上。i‘v为每个文件定义了基目录和源目录,并且已将coverage.xml文件预先生成到每个文件的基目录中。
  • 显示Coverage小部件,但显示:

    Code coverage
    -
    Unit test success
    0 tests
    
  • 我在运行声纳-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
    

解决方案

也有此问题,pytest没有生成格式正确的覆盖报告,Sonarqube可以利用。在pytest生成覆盖报告之后,我运行了coverage xml -i,并且此命令生成了sonarqube能够理解的格式正确的覆盖报告。

相关文章