同时运行Spring测试用例,而不是按顺序运行
我的Spring Boot应用程序还启动gRPC服务及其REST(HTTP)服务。我已经为gRPC和REST编写了具体的测试。但是,当我运行gradle测试时,这些测试是按顺序运行的;它们没有理由不能并行运行 我在这里拍摄的是Spring Boot应用程序的一个实例,在并行执行测试时运行 我尝试在gradle文件中设置test部分,使其具有“forkCount”,我还尝试设置parallel=“classes”等选项,但这会产生一个错误,即“parallel”是未知属性(可能是junit 5的东西?) forkCount选项不是我想要的,因为它将启动spring应用程序的多个实例 我还尝试从测试类中删除@RunWith,并创建一个单独的测试类(具有@RuWith注释),其中包含以下方法同时运行Spring测试用例,而不是按顺序运行,spring,spring-boot,junit,Spring,Spring Boot,Junit,我的Spring Boot应用程序还启动gRPC服务及其REST(HTTP)服务。我已经为gRPC和REST编写了具体的测试。但是,当我运行gradle测试时,这些测试是按顺序运行的;它们没有理由不能并行运行 我在这里拍摄的是Spring Boot应用程序的一个实例,在并行执行测试时运行 我尝试在gradle文件中设置test部分,使其具有“forkCount”,我还尝试设置parallel=“classes”等选项,但这会产生一个错误,即“parallel”是未知属性(可能是junit 5的东
@测试
void testRunner(){
JUnitCore.runClasses(ParallelComputer.classes(),{GrpcTests.class,restests.class});
}
但测试似乎仍按顺序运行
我也试过其他几种方法,对不起,我手头没有所有的方法
目标
理想情况下,我所希望的是在测试类并行运行时运行Spring Boot应用程序的一个实例(如果我也能让这些方法并行运行,那就太好了)
- Java版本:“1.8.0_171”
- Spring启动版本:2.0.4.0版本
根据建议,我尝试添加
@测试
public void contextLoads()引发异常{
}
在gradle文件中添加“maxParallelForks”条目时,我已经在使用@SpringBootTest注释,但这与我使用“forkCount”时的行为相同,因为至少有2个实例从测试关闭日志中可以看到启动
2019-04-25 10:24:17.245 LogLevel=INFO 53838 --- shutting down gRPC server since JVM is shutting down
...
2019-04-25 10:24:30.125 LogLevel=INFO 53839 --- shutting down gRPC server since JVM is shutting down
您可以看到我收到两条关机消息,显示了PID(53838和53839)。您需要将@SpringBootTest与maxParallelForks结合起来 用@SpringBootTest注释单元测试@SpringBootTest将启动一个Spring启动上下文,该上下文将在所有测试中缓存 “Spring测试支持的一个很好的功能是,应用程序上下文缓存在两个测试之间,因此,如果您在一个测试用例中有多个方法,或者有多个具有相同配置的测试用例,那么它们只会产生启动应用程序一次的成本” 见: 将以下内容添加到build.gradle中。同时运行多个测试
tasks.withType(Test) {
maxParallelForks = 4 //your choice here
}
请参见您需要将@SpringBootTest与maxParallelForks相结合 用@SpringBootTest注释单元测试@SpringBootTest将启动一个Spring启动上下文,该上下文将在所有测试中缓存 “Spring测试支持的一个很好的功能是,应用程序上下文缓存在两个测试之间,因此,如果您在一个测试用例中有多个方法,或者有多个具有相同配置的测试用例,那么它们只会产生启动应用程序一次的成本” 见: 将以下内容添加到build.gradle中。同时运行多个测试
tasks.withType(Test) {
maxParallelForks = 4 //your choice here
}
请参见这不起作用。与我尝试的“forkCount”类似,它启动应用程序的多个实例。这可以在关机时看到,因为我从我的gRPC服务器进程中收到两条消息:
2019-04-25 10:24:17.245信息**53838**因为JVM正在关机而关机gRPC服务器2019-04-25 10:24:30.125信息**53839**因为JVM正在关机而关机gRPC服务器
您可以从PID(双“*”中看到)他们是不同的。嘿,吉姆,你能发布一个使用gRPC和@SpringBootTest的测试吗?这不起作用。与我尝试的“forkCount”类似,它启动应用程序的多个实例。这可以在关机时看到,因为我从我的gRPC服务器进程中收到两条消息:2019-04-25 10:24:17.245信息**53838**因为JVM正在关机而关机gRPC服务器2019-04-25 10:24:30.125信息**53839**因为JVM正在关机而关机gRPC服务器
您可以从PID(双“*”中看到)他们是不同的。嘿,吉姆,你能发布一个使用gRPC和@SpringBootTest的测试吗?