JUnit 5 和测试套件

JUnit 5 and Test Suites

我们有一个纯 JUnit-5 项目,我们想对我们的单元测试进行分类。

为此,我的理解是我们需要包含 JUnit-4 @RunWith(JUnitPlatform.class)

import org.junit.platform.runner.JUnitPlatform;
import org.junit.platform.suite.api.IncludeTags;
import org.junit.platform.suite.api.SelectPackages;
import org.junit.runner.RunWith;

@RunWith(JUnitPlatform.class)
@SelectPackages("my.project.domain")
@IncludeTags("long-running-test") 
public interface LongRunningTestSuite {}

在 Intellij-Idea 中,我可以 运行 所有或只是测试套件没有问题,但我在使用 maven 执行时遇到错误:

这没有帮助:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <skip>false</skip>
        <excludes>
            <exclude>**/*TestSuite.java</exclude>
        </excludes>
        <includes>
            <include>**/*Test.java, **/*IT.java</include>
        </includes>
    </configuration>
</plugin>

如果我只是删除所有 XyzTestSuite.java 类 Maven 构建成功。我也试过 <exclude>my.project.domain.testsuite</exclude>.

排除接缝不起作用。为什么?

JUnitPlatform 已弃用。

相应的新功能是 JUnit 平台套件引擎:https://junit.org/junit5/docs/current/user-guide/index.html#junit-platform-suite-engine

但是,如果只是对测试进行分类,那么简单得多的标签可能就足够了:https://junit.org/junit5/docs/current/user-guide/index.html#writing-tests-tagging-and-filtering