我们有一个纯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>
。
这种排斥似乎不起作用。为什么?
1条答案
按热度按时间iswrvxsc1#
JUnitPlatform
已弃用。相应的新功能是 JUnit Platform Suite Engine。请参见JUnit 5用户指南:6.2. JUnit平台套件引擎。
但是,如果只是对测试进行分类,那么简单得多的标记可能就足够了。请参见JUnit 5用户指南:2.9标记和过滤。