JUnit 5和测试套件

yqlxgs2m  于 2023-06-29  发布在  其他
关注(0)|答案(1)|浏览(160)

我们有一个纯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>
这种排斥似乎不起作用。为什么?

iswrvxsc

iswrvxsc1#

JUnitPlatform已弃用。
相应的新功能是 JUnit Platform Suite Engine。请参见JUnit 5用户指南:6.2. JUnit平台套件引擎。
但是,如果只是对测试进行分类,那么简单得多的标记可能就足够了。请参见JUnit 5用户指南:2.9标记和过滤。

相关问题