Unit testing 如何编写spring启动应用程序集成测试?

Unit testing 如何编写spring启动应用程序集成测试?,unit-testing,junit,spring-boot,spring-test,Unit Testing,Junit,Spring Boot,Spring Test,我有一个spring启动应用程序,其中有几个@RestControllers。现在我想编写一个@IntegrationTest来测试我的应用程序 我有: @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = Application.class) @WebIntegrationTest("server.port:0") public class ApplicationTests {

我有一个spring启动应用程序,其中有几个
@RestController
s。现在我想编写一个
@IntegrationTest
来测试我的应用程序

我有:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebIntegrationTest("server.port:0")
public class ApplicationTests {
    @Test public void someTest() {}
}
这段代码运行良好

我已经将我的测试分为几个测试类。每个
@RestController
一个测试类,例如
TestClass1
TestClass2

我的问题是如何包括这些测试类?我正在寻找类似JUnit套件测试的东西:

@RunWith(Suite.class) and @SuiteClasses({TestClass1.class, ...})
我无法将另一个
@RunWith
添加到我的
ApplicationTests
类,如果我添加了所有这些注释

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebIntegrationTest("server.port:0")
对于我的每个测试类,它会导致每个测试类启动Tomcat一次,这就是我想要避免的。因此,基本上只启动一次Tomcat,然后运行所有测试,这些测试分为几个测试类


谢谢

你在使用@DirtiesContext注释吗?不,我没有。这也不是我想要的@DirtiesContext为每个测试方法/类提供新的上下文。我想运行几个测试类:TestClass1和TestClass2,只引导tomcat一次。你在使用@DirtiesContext注释吗?不,我没有。这也不是我想要的@DirtiesContext为每个测试方法/类提供新的上下文。我想运行几个测试类:TestClass1和TestClass2,只引导tomcat一次。