我需要生成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>
答案 0 :(得分:1)
你有多种可能性,可以一起使用,也可以单独使用
通过设置sonar.coverage.exclusions
告诉声纳忽略操作类 - 如此处所述https://docs.sonarqube.org/display/SONAR/Analysis+Parameters
将jacoco配置为仅使用ìncludes
跟踪您的课程
https://www.eclemma.org/jacoco/trunk/doc/ant.html - 但我强烈建议您查看文档,我们直接将其用于javaagent,并且我不能100%确定这是100%以相同的方式工作。
includes=your.package.*
可能有用,看看Hybris测试目标 - &gt;您可以使用testclasses.packages
配置程序包,以减少正在运行的测试。这也可能会扼杀你的oob覆盖范围,因为那些oob代码的测试将不会被执行