声纳 jacoco hybris

Sonar jacoco hybris

我需要为 hybris 项目中的 junit 测试用例生成 jacoco 报告并将其发布在声纳中。当我在声纳中发布 jacoco 报告时,代码覆盖率也包括 OOB 类。

我已经使用 sonar.excludedExtensions=xx,yy 排除了不需要的扩展 我需要在我的自定义扩展中排除一些目录。

我尝试使用 sonar.jacoco.excludes=x.y.z.* 和 sonar.exclusions=xx/** 但没有任何效果。

如何在 jacoco 分析期间排除 类 或目录。我在驱动 jacoco 分析的 hybris 中有如下 OOB acc-ant-sonar.xml 文件。

<project name="acc.ant.sonar" xmlns:jacoco="antlib:org.jacoco.ant">
    <taskdef uri="antlib:org.jacoco.ant" resource="path/antlib.xml">
        <classpath path="xx.jar"/>
    </taskdef>

    <target name="jacocoalltests" description="runs allstests with jacoco attached">

        <jacoco:agent property="agentvmparam"
                      append="true"
                      output="file"
                      destfile="output_path/jacoco.exec"
                />

        <property name="testclasses.extensions" value="${extname}"/>
        <ant dir="${platformhome}" target="alltests" inheritrefs="false">
            <property name="standalone.javaoptions" value="${agentvmparam} ${standalone.javaoptions}"/>
        </ant>
    </target>
  </project>

你有多种可能性,可以一起使用,也可以单独使用

  1. 通过设置 sonar.coverage.exclusions- 告诉声纳忽略 oob-类- 如此处所述 https://docs.sonarqube.org/display/SONAR/Analysis+Parameters

  2. 将 jacoco 配置为仅跟踪您的 类 和 ìncludes https://www.eclemma.org/jacoco/trunk/doc/ant.html - 但我强烈建议查看文档,我们只是直接将其用于 javaagent,我不能 100% 确定这是否 100% 以相同的方式工作。

    includes=your.package.*
    
  3. 可能有用,看看 Hybris 测试目标 -> 您可以使用 testclasses.packages 配置包,以减少 运行 的测试。这也可能会破坏您的 oob 覆盖范围,因为不会执行那些针对 oob 代码的测试