您好我正在为Web应用程序进行集成测试,我正在使用TestNG和Maven。我制作了一个测试套件,包括我的所有测试用例。为了在所有测试运行之前启动Web应用程序,我在@BeforeSuite注释方法中启动Web应用程序,如下所示:
@BeforeSuite
public void prepareTestContext() {
ConfigServer.main(); //This is a spring boot web app.
}
现在我想在另一个线程中启动这个Web应用程序,我是多线程编程的新手,任何人都可以告诉我如何用另一个线程完成这个?感谢。
答案 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。