Как исключить класс из покрытия Jacoco?

Я хочу использовать Jacoco таким образом, чтобы он исключал Sample.java class из общего охвата. Для этого я включил <exclude> в цель prepare-agent в maven pom.xml.

Плагин Якоко:

                <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.7.1.201405082137</version>
            <executions>
                <execution>
                    <id>default-prepare-agent</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

Надёжный плагин:

            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.4.3</version>
            <configuration>
                <excludes>
                    <exclude>**/*Sample.java</exclude>
                </excludes>
            </configuration>
        </plugin>

раздел свойств:

    <properties>
    <argLine>-Dfile.encoding=ISO-8859-1</argLine>
</properties>

person meallhour    schedule 25.02.2016    source источник
comment
Возможный дубликат Конфигурация Maven Jacoco - исключить классы/пакеты из отчет не работает   -  person Tunaki    schedule 25.02.2016
comment
Вы не устанавливаете конфигурацию для правильного плагина. Исключение должно быть для jacoco-maven-plugin, но у вас его нет.   -  person Tunaki    schedule 25.02.2016


Ответы (2)


Это правильный способ настроить исключения/включения для JaCoCo:

    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.7.1.201405082137</version>
            <executions>
                <execution>
                    <id>default-prepare-agent</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <excludes>
                    <exclude>**/*Sample.class</exclude>
                </excludes>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.4.3</version>
        </plugin>
    </plugins>

Для получения более подробной информации вы можете просмотреть эту документацию: http://www.jacoco.org/jacoco/trunk/doc/prepare-agent-mojo.html

person Stuti Verma    schedule 11.08.2017
comment
должен быть Sample.class, а не Sample.java ‹configuration› ‹excludes› ‹exclude›**/*Sample.class‹/exclude› ‹/excludes› ‹/configuration› - person sreenath; 21.06.2019
comment
Вероятно, лучше не настраивать цель prepare-agent. Из документов: За исключением оптимизации производительности или технических краеугольных случаев, эта опция обычно не требуется. Если вы хотите исключить классы из отчета, настройте цель report соответствующим образом. - person ordonezalex; 18.06.2021

Вот мое решение, обратите внимание, что шаблон класса исключения class.path.className.

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>check</id>
            <goals>
                <goal>check</goal>
            </goals>
            <configuration>
            <haltOnFailure>true</haltOnFailure>
            <rules>
                <rule>
                    <element>CLASS</element>
                    <excludes>
                        <exclude>com.example.className</exclude>
                        <exclude>com.example.config.*</exclude>
                    </excludes>
                    <limits>
                        <limit>
                            <counter>LINE</counter>
                            <value>COVEREDRATIO</value>
                            <minimum>0.80</minimum>
                        </limit>
                    </limits>
                </rule>
            </rules>
            </configuration>
         </execution>
     </executions>
 </plugin>

Подробности конфигурации см. в этом документе, надеюсь это помогает.

person Eric Tan    schedule 02.09.2020