声纳jacoco hybris

时间:2018-05-14 15:01:54

标签: ant sonarqube code-coverage jacoco hybris

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

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

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

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

<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 个答案:

答案 0 :(得分:1)

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

  1. 通过设置sonar.coverage.exclusions告诉声纳忽略操作类 - 如此处所述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测试目标 - &gt;您可以使用testclasses.packages配置程序包,以减少正在运行的测试。这也可能会扼杀你的oob覆盖范围,因为那些oob代码的测试将不会被执行