jacoco-maven-plugin, не исключая тестовые классы

Фред

Отчеты Jacoco для этого проекта содержат покрытие строк для тестовых классов, несмотря на попытку исключить тесты, как показано ниже.

        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.3</version>
            <configuration>
                <excludes>
                    <exclude>**/*Test.*</exclude>
                </excludes>
            </configuration>
            <executions>
                <execution>
                    <configuration>
                        <excludes>
                            <exclude>**/*Test.*</exclude>
                        </excludes>
                    </configuration>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <configuration>
                        <excludes>
                            <exclude>**/*Test.*</exclude>
                        </excludes>
                    </configuration>
                    <id>report</id>
                    <phase>test</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
                <execution>
                    <id>jacoco-check</id>
                    <goals>
                        <goal>check</goal>
                    </goals>
                    <configuration>
                        <rules>
                            <rule implementation="org.jacoco.maven.RuleConfiguration">
                                <excludes>
                                    <exclude>**/*Test.*</exclude>
                                </excludes>
                                <element>CLASS</element>
                                <limits>
                                    <limit implementation="org.jacoco.report.check.Limit">
                                        <counter>LINE</counter>
                                        <value>COVEREDRATIO</value>
                                        <minimum>0.94</minimum>
                                    </limit>
                                    <limit implementation="org.jacoco.report.check.Limit">
                                        <counter>BRANCH</counter>
                                        <value>COVEREDRATIO</value>
                                        <minimum>0.85</minimum>
                                    </limit>
                                </limits>
                            </rule>
                        </rules>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Вышеупомянутый pom в основном заключается в том, что мы обрабатываем конфигурацию с помощью решений из существующих вопросов StackOverflow, но ни один из них не работает.

Любая обратная связь будет очень признательна!

Годин

В отсутствие минимального полного воспроизводимого примера можно только догадываться, как ваши тестовые файлы размещаются в вашем проекте и почему они отображаются в отчете, потому jacoco-maven-pluginчто по умолчанию не показывает тестовые классы в отчете - вот доказательство:

для следующих pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>example</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.3</version>
        <executions>
          <execution>
            <goals>
              <goal>prepare-agent</goal>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

src/main/java/Example.java

class Example {
    void sayHello() {
        System.out.println("Hello, World!");
    }
}

и src/test/java/ExampleTest.java

import org.junit.Test;

public class ExampleTest {
    @Test
    public void test() {
        new Example().sayHello();
    }
}

исполнение

mvn clean verify

генерирует следующий отчет, который, как видите, не содержит src/test/java/ExampleTest.java:

отчет

Пытаясь слепо угадать, можно предположить, что ваш проект имеет нестандартную структуру, в которой указанные выше Example.javaи ExampleTest.javaнаходятся в том же srcкаталоге, и у вас есть следующиеpom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>example</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>${project.basedir}/src</sourceDirectory>
    <testSourceDirectory>${project.basedir}/src</testSourceDirectory>

    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.3</version>
        <executions>
          <execution>
            <goals>
              <goal>prepare-agent</goal>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

тогда выполнение mvn clean verifyдействительно выдаст следующий отчет, содержащийExampleTest.java

отчет

однако в этом случае после исключения **/*Test.*

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>example</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>${project.basedir}/src</sourceDirectory>
    <testSourceDirectory>${project.basedir}/src</testSourceDirectory>

    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.3</version>
        <executions>
          <execution>
            <goals>
              <goal>prepare-agent</goal>
              <goal>report</goal>
            </goals>
            <configuration>
              <excludes>
                <exclude>**/*Test.*</exclude>
              </excludes>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

работает нормально

отчет

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

maven-surefire-plugin, jacoco-maven-plugin не показывают покрытия

Нужна ли цель prepare-agent в jacoco-maven-plugin?

How to specify output format for jacoco plugin for maven?

Maven / Jacoco - как получить объединенный отчет после успешных тестов и слияния файлов данных jacoco?

Как запустить jacoco-maven-plugin с параметром -Xbootclasspath / p: my.jar?

Конфигурация Maven Jacoco для многомодульных проектов

Можно ли запускать плагин JaCoCo maven только во время жизненного цикла сайта?

Покрытие кода в сборке maven - Пропуск выполнения JaCoCo из-за отсутствия каталога классов

Охват многомодульного проекта Jacoco Maven

maven jacoco: не генерируется отчет о покрытии кода

Проблемы с настройкой JaCoCo в Maven

JaCoCo с Maven - отсутствует файл данных исполнения

Конфигурация Maven Jacoco - исключить классы / пакеты из отчета, не работающего

Maven Jacoco - многомодульный проект. Какая самая простая (централизованная?) Настройка?

Создание отчета о покрытии кода JaCoCo с помощью Maven

Как проверить минимальное покрытие кода для многомодульного проекта maven с помощью jacoco?

Как указать формат вывода для плагина jacoco для maven?

Как настроить многомодульный Maven + Sonar + JaCoCo для выдачи объединенного отчета о покрытии?

Как интегрировать автономные исполняемые файлы JaCoCo из многопроектной сборки Maven в SonarQube

Запуск jacoco проверки цели с Maven 3.5

Как я могу исключить файлы покрытия кода SonarQube, используя плагин JaCoCo maven

Автономные инструменты Jacoco Maven - Tomcat

Maven Jacoco - объедините все результаты тестов в 1 обзор

Невозможно использовать аргументы jacoco JVM и надежные аргументы JVM вместе в maven

Как я могу интегрировать отчеты Jacoco с SonarQube без использования maven?

Как я могу интегрировать отчеты Jacoco с SonarQube без использования maven?

Как настроить Jacoco с помощью SonarQube и Maven в Jenkins

Создание покрытия кода с помощью JaCoCo и плагина spring-boot-maven

Как исключить прямую зависимость с Maven Plugin

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    Резервное копирование / восстановление kafka и zookeeper

  3. 3

    Редактировать существующий файл Excel C # npoi

  4. 4

    Ipython использует% store magic для получения динамического имени

  5. 5

    Как получить список индексов всех значений NaN в массиве numpy?

  6. 6

    Почему бы не выдать ошибку ERROR в тесте Jasmine?

  7. 7

    Дженерики и потоки Java

  8. 8

    Как отфильтровать несколько столбцов в Qtableview?

  9. 9

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  10. 10

    Как изменить значок приложения для проекта libgdx android

  11. 11

    Thymeleaf не отображает значения в проекте Spring Boot

  12. 12

    Unity Проверить, включен ли Toggle

  13. 13

    Airflow не распознает мои настройки подключения S3

  14. 14

    Flutter: Unhandled Exception: FileSystemException: Creation failed, path = 'Directory: '' (OS Error: Read-only file system, errno = 30)

  15. 15

    Bogue étrange datetime.utcnow()

  16. 16

    На графике Matplotlib не отображается легенда

  17. 17

    Создание X509Certificate2 из ECC X509Certificate выдает исключение System.NotSupportedException в C #

  18. 18

    Как добавить фреймворк в файл в папке «Источники» Xcode Playground?

  19. 19

    Выполнение команд PowerShell в программе Java

  20. 20

    Статус HTTP 403 - ожидаемый токен CSRF не найден

  21. 21

    Инструмент для вставки данных, собранных в электронной таблице, в документ Word или PDF

популярныйтег

файл