Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在我运行此目标web的测试用例之前,如何使用多线程启动web应用程序?_Java_Spring_Spring Boot_Testng_Integration Testing - Fatal编程技术网

Java 在我运行此目标web的测试用例之前,如何使用多线程启动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

嗨,我正在为一个web应用程序进行集成测试,我正在使用TestNG和Maven。我制作了一个测试套件,包括我所有的测试用例。为了在所有测试运行之前启动web应用程序,我在@BeforeSuite注释方法中启动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。