Java 运行JUnit5测试套件加载Spring上下文

Java 运行JUnit5测试套件加载Spring上下文,java,spring,junit,junit5,spring-test,Java,Spring,Junit,Junit5,Spring Test,我在使用Spring运行JUnit5 Jupiter的测试套件时遇到了问题 我使用的是最新版本的Spring(5.2.8-RELEASE)(不是Spring boot)和最新版本的JUnit Jupiter(5.7.0) 以下是我的测试套件代码: package mypackage.test; import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; import org.junit.jupiter.api.TestInstance

我在使用Spring运行JUnit5 Jupiter的测试套件时遇到了问题

我使用的是最新版本的Spring(5.2.8-RELEASE)(不是Spring boot)和最新版本的JUnit Jupiter(5.7.0)

以下是我的测试套件代码:

package mypackage.test;

import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle;
import org.junit.jupiter.api.TestMethodOrder;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.platform.suite.api.SelectPackages;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.context.web.AnnotationConfigWebContextLoader;
import org.springframework.test.context.web.WebAppConfiguration;

@WebAppConfiguration
@ExtendWith(SpringExtension.class)
@ContextConfiguration(loader = AnnotationConfigWebContextLoader.class, classes = {
        MyRootSpringConfiguration.class })
@SelectPackages("mypackage.test.units")
class MyTestSuite {

}
这样,我加载应用程序的上下文,然后我想执行所有相应的测试

但它似乎不起作用,因为Eclipse没有将这个类识别为JUnit5测试类

对于各个测试类,我有一个类似的配置,它们工作得很好。但是每个文件都加载上下文,这不是一个好的解决方案。我更喜欢一个套件,它只加载一次上下文,然后所有的测试都使用这个上下文来执行


您知道如何配置它吗?

SelectPackages不是您想象的那样。它只能与JUnit4和RunWith(JUnitPlatform.class)结合使用。此外,SpringExtension是为单个测试类设计的;对于整个套件或包,没有有效的方法使用它。确定JUnit5和Spring不可能创建套件测试吗?听起来很奇怪…Jupiter按类、包、文件夹、类路径创建套件。但是,目前还没有办法将单个测试进行编程组合。相反,您可以使用标记并过滤这些标记运行的测试。SelectPackages不是您所认为的。它只能与JUnit4和RunWith(JUnitPlatform.class)结合使用。此外,SpringExtension是为单个测试类设计的;对于整个套件或包,没有有效的方法使用它。确定JUnit5和Spring不可能创建套件测试吗?听起来很奇怪…Jupiter按类、包、文件夹、类路径创建套件。但是,目前还没有办法将单个测试进行编程组合。相反,您可以使用标记并过滤这些标记运行的测试。