@Disabled не работает в JUnit5 - PullRequest
       40

@Disabled не работает в JUnit5

0 голосов
/ 28 августа 2018

Я хочу использовать Junit 5 в проекте Maven:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.2.0</version>
    <scope>test</scope>
</dependency>

В данный момент я хочу отключить тест:

import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Disabled;

import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toMap;

@Disabled
public class DatabaseFeaturesBitStringTest {
    .... 
}

Но это не работает. Тесты выполняются после mvn чистой сборки. Можете ли вы посоветовать, чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Это вызвано несовместимостью между maven-surefire-plugin и junit5. Вы должны либо определить версию как минимум с 2.22.0 для maven-surefire-plugin (см. блог codefx - настройка junit 5 ), либо просто использовать maven 3.6.0. Кроме того, вы должны иметь зависимость от jupiter-engine, определенную, как уже указано в самых первых строках этого вопроса выше:

<dependency>
   <groupId>org.junit.jupiter</groupId>
   <artifactId>junit-jupiter-engine</artifactId>
   <version>5.4.0</version>
   <scope>test</scope>
</dependency>

Если вы определили зависимость только для артефакта junit-jupiter-api, которая достаточна для компиляции теста и его запуска с помощью junit5, аннотация @Disabled будет игнорироваться и также будет выполняться конкретный тест.

0 голосов
/ 28 августа 2018

Проверьте настройку подключаемого модуля surefire на наличие зависимости от junit-jupiter-engine. Я не уверен, но я считаю, что он должен быть настроен для загрузки всех функций из артефакта движка, включая аннотацию Disabled.

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${maven.surefire.plugin.version}</version>
            <dependencies>
                <dependency>
                    <groupId>org.junit.platform</groupId>
                    <artifactId>junit-platform-surefire-provider</artifactId>
                    <version>${junit.platform.surefire.provider.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.junit.jupiter</groupId>
                    <artifactId>junit-jupiter-engine</artifactId>
                    <version>${junit.version}</version>
                </dependency>
            </dependencies>
        </plugin>
...