点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
作为我们持续集成过程的一部分,我正在尝试将代码覆盖工具(jacoco,cobertura)与hybris和声纳进行集成。 我在jacoco的hybris Wiki以及cobertura的合作伙伴指南中找到了一些示例,但它们是针对hybris的较旧版本的。
我曾尝试自己集成这两个工具,但是遇到了一些问题,例如将jacoco.exec加载到声纳中时的ClassNotFoundExceptions以及如何使用Cobertura解决依赖项。 旧的Wiki页面上的说明也不清楚。 是否有关于设置代码覆盖率工具的最新指南? 或者有人可以简要说明如何将其中一种工具与hybris集成在一起?
在将代码覆盖率整合到我们的CI流程中很长时间之后,我终于能够让SonarQube使用JaCoCo报告代码覆盖率。 我的Jenkins作业使用JaCoCo代码覆盖率属性集来调用Sonar运行程序。 这个帖子在旧论坛中的评论从很多方面帮助了我- https://wiki.hybris.com/display/forum/running+Sonar+and+JaCoCo+on+hybris
以下是获取准确覆盖率的一些关键方面-
确保已正确指定使用属性" sonar.java.binaries"的二进制文件的路径和使用属性" sonar.java.libraries"的库的路径。 您只需要指定您使用的单个扩展的localextensions.xml和extensioninfo.xmls中列出的扩展所使用的二进制文件的路径。 对于库,最好指定平台使用的所有JAR文件的路径以及您的自定义代码。 使用shell脚本将所有JAR文件复制到公共目录并在此处将目标目录指定为属性值可能会有所帮助。
确保已使用" sonar.tests"属性正确指定了所有测试源的路径。 需要将跨不同自定义扩展名的多个测试源路径指定为逗号分隔的值列表。
确保启用了junit租户,并使用在local.properties文件中指定的以下选项运行了单元测试-standalone.javaoptions = -javaagent:PATH_TO_JACOCO_LIB/jacocoagent.jar = destfile = DESTINATION_PATH/jacoco.exec, append = true,不包括= LIST_EXCLUDES_AS_NECESSARY
必须正确指定" sonar.jacoco.reportPath"和" sonar.junit.reportsPath"属性。 这些值将与" sonar.dyamicAnalysis"属性结合使用,该属性将设置为" reuseReports"。 此处的sonar.jacoco.reportPath应该与您在local.properties文件中指定的sonar.jacoco.reportPath相匹配。
不用说,还需要使用" sonar.sources"属性正确指定所有源文件的路径。 可以根据需要指定" sonar.exclusions"和" sonar.coverage.exclusions"属性。
就是这样。 如果您正确解决了这些问题,您应该可以看到SonarQube正确报告了您的覆盖范围。
您能告诉我这种声纳集成代码覆盖是否也适用于以@integrationtests注释的测试吗?
一周热门 更多>