Java 如何使用Junit5创建JUnit4中的测试套件
由于出于单元测试的目的,我们正在从junit4升级到junit5,因此我无法找到在junit5中创建测试套件的解决方案,就像在junit4中一样: 下面是我们的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
@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引擎
依赖项。