Как заставить Maven хорошо играть с JUnit? - PullRequest
0 голосов
/ 17 декабря 2018

Плагин Maven surefire запускает только те тесты, которые начинаются или заканчиваются словом test.С JUnit трудно справиться с этим по двум причинам:

1 - мне уже нужно добавить @Test ко всем моим методам тестирования, поэтому добавление слова test также повторяется.

2 - В JUnit, если я хочу отключить какой-либо тест, я просто отмечаю его @Disabled, поэтому, если я использую верный метод, мне также придется переименовать метод теста.

Есть ли способы сделать так, чтобы игра с JUnit была приятной?Таким образом, просто запустив то, что помечено @Test и автоматически игнорируя @Disabled методы?


В настоящее время мой pom.xml выглядит следующим образом (только включая связанные с тестом элементы для экономии места):

<packaging>jar</packaging>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.3.2</version>
    <scope>test</scope>
</dependency>

<build>
    <pluginManagement>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.1</version>
        </plugin>
    </pluginManagement>
</build>

1 Ответ

0 голосов
/ 18 декабря 2018

Для запуска тестов JUnit Jupiter с Maven вы должны использовать junit-jupiter-engine вместо junit-jupiter-api .

<dependencies>
    [...]
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.3.2</version>
        <scope>test</scope>
    </dependency>
    [...]
</dependencies>

Вы можете добавить junit-jupiter-api в качестве дополнительного артефакта.Кроме того, вы должны использовать как минимум maven-surefire-plugin 2.22.1 +

...