Сонар Джакоко Хибрис - PullRequest
0 голосов
/ 14 мая 2018

Мне нужно сгенерировать отчет jacoco и опубликовать его в сонаре для тестовых случаев junit в проекте hybris. Когда я публикую отчет jacoco в сонаре, покрытие кода также включает в себя классы OOB.

Я исключил нежелательные расширения, используя sonar.excludedExtensions = xx, yy Мне нужно исключить некоторые каталоги внутри моих пользовательских расширений.

Я пытался использовать sonar.jacoco.excludes = x.y.z. * и sonar.exclusion = xx / **, но ничего не работает.

Как я могу исключить классы или каталоги во время анализа jacoco. У меня есть файл OOB acc-ant-sonar.xml, как показано ниже в hybris, который управляет анализом 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 голосов
/ 15 мая 2018

у вас есть несколько возможностей, которые вы можете использовать вместе или по одному

  1. , сообщая гидролокатору игнорировать oob-классы, устанавливая 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 -> вы можете настроить пакеты с помощью testclasses.packages, чтобы уменьшитьтесты, которые работают.Это также может убить ваше покрытие oob, так как тест для кода oob не будет выполнен

...