Python 如何使用Django、Jenkins和Sonar获得测试覆盖率?
我正试图用声纳覆盖测试单元。为此,我采取了以下步骤:Python 如何使用Django、Jenkins和Sonar获得测试覆盖率?,python,django,jenkins,code-coverage,sonarqube,Python,Django,Jenkins,Code Coverage,Sonarqube,我正试图用声纳覆盖测试单元。为此,我采取了以下步骤: 使用python manage.py jenkins--coverage html report=report\u coverage生成报告 在/sonar/sonar-3.5.1/conf/sonar.properties中设置属性: sonar.dynamicAnalysis=重用报告 sonar.cobertura.reportPath=/var/lib/jenkins/workspace/origami/DEV/SRC/origami
/sonar/sonar-3.5.1/conf/sonar.properties
中设置属性:sonar.dynamicAnalysis=重用报告
sonar.cobertura.reportPath=/var/lib/jenkins/workspace/origami/DEV/SRC/origami/reports/coverage.xml
当我启动测试时,会在正确的位置生成报告。然而,声纳探测不到单元测试。
我是错过了一步还是一切都错了?我认为问题在于:
sonar.cobertura.reportPath=/var/lib/jenkins/workspace/origami/DEV/SRC/origami/reports/coverage.xml
阅读此文:我认为问题在于声纳和詹金斯之间似乎没有任何联系。使用插件将更容易实现 安装插件后,您只需在jenkins管理中添加一个构建步骤 为了在Sonar中查看覆盖率报告,您应该使用“Jenkins Sonar插件”。然而,它将迫使您创建一个maven项目(和一个pom.xml),并且由于您正在使用Django(它已经做了maven所做的事情),它可能不是您想要的 我想你想看到的是代码覆盖率,也许你应该把它集成到Jenkins中,而不是Sonar中。为此,您可以使用两个插件,“Jenkins Cobertura插件”和“HTML发布者插件” Jenkins Cobertura插件将允许您以图形方式查看coverage.xml中的代码覆盖率。您可以看到包、文件、类、行和条件中包含的百分比。您只需在项目管理中将coverage.xml的链接添加到Jenkins中即可。更多细节
HTML Publisher plugin]通过在HTML中发布覆盖率报告来查看详细的代码覆盖率可能会很有用 在Jenkins上,我发现coverage.xml的路径与运行manage.py Jenkins的目录相对 在我的例子中,我需要在不同于Jenkins的机器上运行单元测试。为了允许Sonar使用生成的coverage.xml,我必须从Jenkins上与项目相关的同一位置的文件夹中运行测试 Say I have the following on Jenkins /local/jenkins/tmp/workspace/my_build + my_project + app1 + app2 Say on test machine I have the following /local/test + my_project + app1 + app2 假设我有以下关于詹金斯的消息 /本地/jenkins/tmp/workspace/my_build +我的计划 +附件1 +附件2 在测试机上说我有以下几点 /本地/测试 +我的计划 +附件1 +附件2
我在测试机器上从/local/test运行单元测试。然后coverage.xml有正确的相对路径,看起来像my_project/app1/source1.py或my_project/app2/source2.py路径是正确的。我已经检查了这个链接,它也不起作用。为什么要写绝对路径?因为不用担心路径。你能发布控制台输出吗?这很难看,但我想我别无选择。不管怎样,谢谢你,陌生人。