Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Junit5创建JUnit4中的测试套件_Java_Spring Boot_Junit_Junit5_Junit Runner - Fatal编程技术网

Java 如何使用Junit5创建JUnit4中的测试套件

Java 如何使用Junit5创建JUnit4中的测试套件,java,spring-boot,junit,junit5,junit-runner,Java,Spring Boot,Junit,Junit5,Junit Runner,由于出于单元测试的目的,我们正在从junit4升级到junit5,因此我无法找到在junit5中创建测试套件的解决方案,就像在junit4中一样: 下面是我们的junit4套件类: @RunWith(Suite.class) @SuiteClasses({ ClassA.class, ClassB.class, ClassC.class } ) public class TestSuite { } 我四处搜索后尝试的代码如下: @RunWith(JUn

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

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

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

@RunWith(JUnitPlatform.class)

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

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

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

我提到的几个博客/问题/网站:


有人帮我解决这个问题。

其实很简单。以下内容将在目录
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 
}


请参阅。

这有帮助吗:?“@RunWith不再存在;被@ExtendWith取代。”
@ExtendWith(SpringExtension.class)@SelectClasses({orderAnnotationalPhanumericExperience.class,orderAnnotationExperience.class,ParameterizedAnnotation.class})公共类测试套件{}
现在我已经尝试过这个了!junit jupiter engine的版本:5.5.0我有以下依赖项,但它仍会抛出错误:java.lang.BootstrapMethodError:java.lang.NoClassDefFoundError:org/junit/platform/engine/engine我相信您的第二个代码示例是正确的,根据文档:但正如文档中所述:用@RunWith(JUnitPlatform.class)注释的测试类和套件不能直接在JUnit平台上执行(或作为某些IDE中记录的“JUnit 5”测试)。这样的类和套件只能使用JUnit4基础设施执行。”这实际上是使用JUnit4引擎运行测试,即您需要
org.JUnit.vintage:JUnit vintage引擎
依赖项。