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

Posted

技术标签:

【中文标题】Hybris Jacoco Sonar 包括所有网络测试到结果报告【英文标题】:Hybris Jacoco Sonar include allwebtests to result report 【发布时间】:2019-02-17 23:07:12 【问题描述】:

我正在尝试将Jacoco 整合到Hybris 中并将报告发送到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,但Hybris不包含这样的目标。那么,如何将 allwebtests 包含到 Jacoco 报告中,该报告将发送到 Sonar

【问题讨论】:

【参考方案1】:

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

<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 代码覆盖率发布到声纳的命令

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

使用 Jacoco 从 Sonar 中的条件覆盖范围中排除 groovy slf4j 日志记录

使用 gradle / sonar / Jacoco 排除项目

Sonar是否使用Jacoco插件进行代码覆盖