Java 如何使TestNG在关闭之前等待测试完成

Java 如何使TestNG在关闭之前等待测试完成,java,multithreading,testng,Java,Multithreading,Testng,我有一个稍微复杂的测试结构,请耐心听我说 我有一系列的testng测试用例,在每次测试中我收集了一些关于测试的数据(不是直接的,而是使用我编写的库)。这个库一旦获得数据,就会在另一个线程上启动一个分析程序,主线程继续执行其余的测试。(我这样做是因为分析有点耗时,我不希望主测试阻塞) 最后只剩下几个分析程序线程,但testng仍然关闭测试,并且无法分析最后几个测试用例的数据 我不想在最后睡个安稳觉。是否有一种方法可以引导TestNG等待此测试(直接或通过关联库)生成的任何线程完成?通常可以执行以下

我有一个稍微复杂的测试结构,请耐心听我说

我有一系列的testng测试用例,在每次测试中我收集了一些关于测试的数据(不是直接的,而是使用我编写的库)。这个库一旦获得数据,就会在另一个线程上启动一个分析程序,主线程继续执行其余的测试。(我这样做是因为分析有点耗时,我不希望主测试阻塞)

最后只剩下几个分析程序线程,但testng仍然关闭测试,并且无法分析最后几个测试用例的数据


我不想在最后睡个安稳觉。是否有一种方法可以引导TestNG等待此测试(直接或通过关联库)生成的任何线程完成?

通常可以执行以下操作之一:
1) 通过使用使主线程等待另一个线程

Thread.join();
2) 将另一个线程设置为非守护进程或用户线程:

当运行的线程都是守护进程线程时,Java虚拟机将退出。必须在线程启动之前调用此方法

Thread.setDaemon(false);