Hybris Jacoco Sonar包括所有测试结果报告

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hybris Jacoco Sonar包括所有测试结果报告相关的知识,希望对你有一定的参考价值。

我正在尝试将Jacoco整合到Hybrisand并将报告发送给Sonar。我设法实现了HybrisSonar发送报告,但它不包括结果报告中的ant allwebtests目标。这是我创建的acc-ant-sonar.xml,并放在以下路径中:

{} HYBRIS_CONFIG_FOLDER /customize/ext-accelerator/acceleratorservices/resources/acceleratorservices/ant/acc-ant-sonar.xml

<project name="acc.ant.sonar" xmlns:jacoco="antlib:org.jacoco.ant">
    <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
        <classpath path="${ext.acceleratorservices.path}/lib/jacocoant.jar"/>
    </taskdef>


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

        <jacoco:agent property="agentvmparam"
                      append="true"
                      output="file"
                      destfile="${HYBRIS_LOG_DIR}/junit/jacoco.exec"
                />

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

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

        <jacoco:agent property="agentvmparam"
                      destfile="${HYBRIS_LOG_DIR}/junit/jacoco.exec"
        />

        <property name="testclasses.packages" value="${testclasses.packages}"/>
        <ant dir="${platformhome}" target="unittests" inheritrefs="false">
            <property name="standalone.javaoptions" value="${agentvmparam} ${standalone.javaoptions}"/>
        </ant>
    </target>

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

        <jacoco:agent property="agentvmparam"
                      destfile="${HYBRIS_LOG_DIR}/junit/jacoco-it.exec"
        />

        <property name="testclasses.packages" value="${testclasses.packages}"/>
        <ant dir="${platformhome}" target="integrationtests" inheritrefs="false">
            <property name="standalone.javaoptions" value="${agentvmparam} ${standalone.javaoptions}"/>
        </ant>
    </target>

</project>

我想在此文件中添加目标jacocoallwebtests,但Hybrisdoes不包含此类目标。那么,我怎么能把所有的webtests包括在Jacoco报告中哪些将被发送到Sonar

答案

您可以使用相同的目标来执行Web测试作为非Web测试。你只需要将testclasses.web设置为true。 jacocoallwebtests的示例:

<target name="jacocoallwebtests" description="runs allwebtests with jacoco attached">
    <jacoco:agent property="agentvmparam"
                  append="true"
                  output="file"
                  destfile="${HYBRIS_LOG_DIR}/junit/jacoco.exec" />
    <property name="testclasses.packages" value="${testclasses.packages}"/>
    <property name="testclasses.web" value="true"/>
    <ant dir="${platformhome}" target="alltests" inheritrefs="false">
         <property name="standalone.javaoptions"
                   value="${agentvmparam} ${standalone.javaoptions}" />
    </ant>
</target>

以上是关于Hybris Jacoco Sonar包括所有测试结果报告的主要内容,如果未能解决你的问题,请参考以下文章

声纳 jacoco hybris

jacoco+maven+sonar+springboot 单元测试代码覆盖率统计

Sonar 和 Jacoco:由于没有类文件,因此无法对项目覆盖率进行 JaCoCo 分析

iOS单元测试-04-覆盖率上传sonarqube

源和测试类在不同模块中时的 JaCoCo 配置

结合声纳的 Jacoco 测试覆盖率