在为此目标Web运行测试用例之前,如何使用多线程启动Web应用程序?

时间:2016-09-25 13:54:52

标签: 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应用程序,我是多线程编程的新手,任何人都可以告诉我如何用另一个线程完成这个?感谢。

2 个答案:

答案 0 :(得分:1)

使用它:

@BeforeSuite
public void prepareTestContext() {
    new Thread(new Runnable() {
        @Override
        public void run() {
            ConfigServer.main();
        }
    },"web-app-runner").start();
}

答案 1 :(得分:1)

通常,在Maven中运行此类测试时,请使用Failsafe integration-test阶段。在pre-integration-test阶段,您需要设置任何必要的环境,包括启动应用程序(也可能是带有测试数据库的Docker容器),然后在integration-test中运行测试,然后关闭测试post-integration-test中的上下文。

然而,使用Spring Boot,Boot本身已经支持所有这些功能,包括只能启动测试实际需要的应用程序“切片”的功能。请查看@SpringBootTest注释和the Spring blog article on the latest test enhancements