Maven surefire插件仅运行以test
开头或结尾的测试。在JUnit中处理它确实很麻烦,原因有两个:
1-我已经必须在所有测试方法中添加@Test
,因此必须附加单词test
是重复的。
2-在JUnit中,如果要禁用某些测试,只需将其标记为@Disabled
,因此,如果使用的是surefire,则还必须重命名测试方法。
是否有任何方法可以确保surefire与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>
答案 0 :(得分:1)
要在Maven中运行JUnit Jupiter测试,您必须使用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 +