Java 在我运行此目标web的测试用例之前,如何使用多线程启动web应用程序?
嗨,我正在为一个web应用程序进行集成测试,我正在使用TestNG和Maven。我制作了一个测试套件,包括我所有的测试用例。为了在所有测试运行之前启动web应用程序,我在@BeforeSuite注释方法中启动web应用程序,如下所示:Java 在我运行此目标web的测试用例之前,如何使用多线程启动web应用程序?,java,spring,spring-boot,testng,integration-testing,Java,Spring,Spring Boot,Testng,Integration Testing,嗨,我正在为一个web应用程序进行集成测试,我正在使用TestNG和Maven。我制作了一个测试套件,包括我所有的测试用例。为了在所有测试运行之前启动web应用程序,我在@BeforeSuite注释方法中启动web应用程序,如下所示: @BeforeSuite public void prepareTestContext() { ConfigServer.main(); //This is a spring boot web app. } 现在我想在另一个线程中启动这个web
@BeforeSuite
public void prepareTestContext() {
ConfigServer.main(); //This is a spring boot web app.
}
现在我想在另一个线程中启动这个web应用程序,我是多线程编程的新手,有人能告诉我如何在另一个线程中完成这个任务吗?谢谢。用这个:
@BeforeSuite
public void prepareTestContext() {
new Thread(new Runnable() {
@Override
public void run() {
ConfigServer.main();
}
},"web-app-runner").start();
}
通常,在Maven中运行这样的测试时,使用故障保护的集成测试阶段。在
集成前测试
阶段,您可以设置任何必要的环境,包括启动应用程序(也可能是带有测试数据库的Docker容器),然后在集成测试
中运行测试,然后在集成后测试
中关闭测试上下文
然而,在SpringBoot中,所有这些功能都已经得到了Boot本身的支持,包括一些功能,比如只启动测试实际需要的应用程序的“部分”。查看
@SpringBootTest
注释和。您使用的是什么构建系统?使用Maven,您通常在集成前测试中启动应用程序,然后在集成测试中运行测试。另外请注意,SpringBoot对集成测试有广泛的内置支持,您通常应该使用他们的Runner,而不是自己的Runner。谢谢,是的,我使用的是maven。