我正在从JUnit 4迁移到5,并决定将所有旧的@Tests重写为新的org.junit.jupiter.api.Test。
我的目标是完全删除旧的junit4依赖关系,只保留这些依赖关系:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<version>1.0.1</version>
<scope>test</scope>
</dependency>
到目前为止,我已经重写了除了我的TestSuites之外的所有东西,我用它将所有测试集群到4个独立的套件中,可以通过surefire插件调用。
似乎JUnit 5根本没有声明性套件支持,但确实有@Tag注释。
问题:
如何创建某种类型的测试套件 - 仅使用JUnit 5的东西,可以使用maven-surefire-plugin(<includes>
)和可运行的IntelliJ调用?
答案 0 :(得分:3)
尽管拥有丰富的junit-platform-suite-api,但由于平台上没有本机测试套件支持,因此目前(2018年6月)是不可能的。相反,您必须使用依赖于junit-4.12.jar的junit-platform-runner来识别和运行套件。
@RunWith(JUnitPlatform.class)
@SelectClasses({Dog.class, Cat.class})
public class MyTestSuite {
}
不过,根据this github issue,该平台的1.3版本可能会提供本机支持。
我删除了所有测试套件,以免项目中完全没有junit 4。当新功能可用时,我将很高兴再次创建它们。