如何让 TestNG 在关闭之前等待我的测试完成

How to make TestNG wait for my test to complete before shutting it down

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

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

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

我不想在最后硬编码睡眠。有没有一种方法可以指示 TestNG 等到此测试(直接或通过关联库)生成的任何线程完成?

您通常可以执行以下操作之一:
1) 通过使用

让主线程等待另一个线程
Thread.join();

2) 将另一个线程设为非守护线程或用户线程:link

Thread.setDaemon(false);

当只有线程运行都是守护进程时Java虚拟机退出threads.This线程启动前必须调用方法