如何使用 Junit5 创建 junit 4 中的测试套件

Dhu*_*van 5 java junit junit-runner spring-boot junit5

由于我们出于单元测试目的从 junit4 升级到 junit5,我无法找到在 junit5 中创建测试套件的解决方案,就像在 junit4 中一样:下面是我们的 junit4 套件类:

@RunWith(Suite.class)
@SuiteClasses({ 
    ClassA.class, 
    ClassB.class, 
    ClassC.class 
    } )
public class TestSuite {

}
Run Code Online (Sandbox Code Playgroud)

我搜索后尝试的代码如下:

@RunWith(JUnitPlatform.class)

@SelectClasses( { 
    OrderAnnotationAlphanumericExperiment.class, 
    orderAnnotationExperiment.class, 
    ParameterizedAnnotation.class 
    } )
public class TestSuite {
    

}
Run Code Online (Sandbox Code Playgroud)

在寻找解决方案时,他们中的大多数人都提供了使用相同的测试套件来使用 vintage api 运行它的解决方案,但我正在寻找的是在 junit 5 中创建测试套件。

很少有人建议@ExtendsWith(SpringExtension.class),但它的文档也较少,无法找到在 junit 5 中创建套件的解决方案

我提到的一些博客/问题/网站:

在 JUnit5 (Eclipse) 中创建 TestSuite 测试 套件在 JUnit5 中是否被视为已弃用? https://howtodoinjava.com/junit5/junit5-test-suites-examples/

有人帮我解决这个问题。

LJ *_* NJ 1

这实际上很容易。foo.bar.tests以下命令将在目录及其子目录中查找所有 JUnit 测试:

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

@RunWith(JUnitPlatform.class)
@SuiteDisplayName("JUnit Platform Suite Demo")
@SelectPackages("foo.bar.test")
public class FullTestSuite 
Run Code Online (Sandbox Code Playgroud)

}

请参阅用户指南第 4.4.4 节