【问题标题】:How to get tests coverage using Django, Jenkins and Sonar?如何使用 Django、Jenkins 和 Sonar 获得测试覆盖率?
【发布时间】:2013-05-07 05:56:58
【问题描述】:

我正在尝试使用 Sonar 获得测试单元覆盖率。为此,我已按照以下步骤操作:

  1. 使用python manage.py jenkins --coverage-html-report=report_coverage 生成报告
  2. /sonar/sonar-3.5.1/conf/sonar.properties中设置属性:

sonar.dynamicAnalysis=reuseReports sonar.cobertura.reportPath=/var/lib/jenkins/workspace/origami/DEV/SRC/origami/reports/coverage.xml

当我启动测试时,会在正确的位置生成报告。但是,Sonar 没有检测到单元测试。 我错过了一步还是一切都错了?

【问题讨论】:

    标签: python django jenkins code-coverage sonarqube


    【解决方案1】:

    在 Jenkins 上,我发现 coverage.xml 的路径与运行 manage.py jenkins 的目录相关。

    就我而言,我需要在与 Jenkins 不同的机器上运行单元测试。为了允许 Sonar 使用生成的 coverage.xml,我有必要从一个文件夹中运行测试,该文件夹与 Jenkins 上的工作区目录相对于项目的同一位置。

    假设我在 Jenkins 上有以下内容 /local/jenkins/tmp/workspace/my_build + 我的项目 + 应用程序1 + 应用程序2 在测试机上说我有以下 /本地/测试 + 我的项目 + 应用程序1 + 应用程序2

    我在测试机器上从 /local/test 运行单元测试。然后coverage.xml 有正确的相对路径,看起来像my_project/app1/source1.py 或my_project/app2/source2.py

    【讨论】:

      【解决方案2】:

      我认为问题在于 Sonar 和 Jenkins 之间似乎没有联系。使用插件会更容易。

      安装插件后,您只需在 jenkins 管理中添加一个构建步骤。

      为了在 Sonar 中查看覆盖率报告,您应该使用“Jenkins Sonar 插件”。然而,它会迫使你创建一个 maven 项目(和一个 pom.xml),并且当你使用 Django(它已经做了 maven 所做的事情)时,它可能不是你想要的。

      我认为您想要的是在某处看到代码覆盖率,也许您应该将其集成到 Jenkins 而不是 Sonar 中。为此,您可以使用两个插件,“Jenkins Cobertura 插件”和“HTML Publisher 插件”。

      Jenkins Cobertura 插件将允许您以图形方式查看您的 coverage.xml 中的代码覆盖率。您可以看到包、文件、类、行和条件中覆盖的百分比。您只需将coverage.xml 的链接添加到项目管理中的Jenkins 中。更多详情here.

      HTML Publisher plugin] 通过在 html 中发布覆盖率报告可能有助于查看详细的代码覆盖率。

      【讨论】:

      • 嗯,这很难看,但我想我别无选择。无论如何,谢谢,不知名的家伙。
      【解决方案3】:

      我认为有问题:

      sonar.cobertura.reportPath=/var/lib/jenkins/workspace/origami/DEV/SRC/origami/reports/coverage.xml
      

      阅读:link

      【讨论】:

      • 路径是正确的。我已经检查了这个链接,它也不起作用。
      • 为什么要写绝对路径?
      • 因为不用担心路径。
      • 你能发布控制台输出吗?
      猜你喜欢
      • 2023-03-31
      • 2014-11-18
      • 1970-01-01
      • 2015-02-12
      • 2015-01-07
      • 1970-01-01
      • 2019-11-06
      • 1970-01-01
      • 2019-01-22
      相关资源
      最近更新 更多