【发布时间】:2018-09-02 08:18:55
【问题描述】:
在迁移我的主项目之前,我正在尝试在我的副项目中使用 JUnit 5。我想使用@Nested 测试来使我的测试类更干净。
当我作为一个整体运行我的测试套件时,一切都很好。但是,一旦我尝试只运行一个测试,@Nested 就不会执行。
mvn -Dtest=com.mycompany.test.MyTest surefire:test
有没有办法让它运行选定的类和所有 @Nested 类?
使用 JUnit 5.1.0,JUnit 平台 1.1.0
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>${org.junit.platform.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${org.junit.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
测试类:
public class MyTest {
@Test
public void thisTestExecutes() { }
@Nested
public class NestedTests {
@Test
public void thisTestDoesnt() { }
}
}
【问题讨论】:
-
对我来说看起来像是我们的 Surefire 提供程序中的错误。你能在 GitHub 上打开一个问题吗? github.com/junit-team/junit5/issues/new
-
谢谢 Marc,刚刚做到了:github.com/junit-team/junit5/issues/1343
-
谢谢,马特乌斯!
-
您是否尝试将 maven-surefire-plugin 版本更新到 2.22.0 或更高版本? (见我的回答stackoverflow.com/questions/53433663/…)
标签: maven junit nested maven-surefire-plugin junit5