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 执行时遇到错误:
- 在 Intellij-Idea 中一些测试用例失败
- 在控制台上我有一个无限循环
这没有帮助:
<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
我们有一个纯 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 执行时遇到错误:
- 在 Intellij-Idea 中一些测试用例失败
- 在控制台上我有一个无限循环
这没有帮助:
<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