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

时间:2015-05-13 04:51:07

标签: java multithreading testng

我有一个稍微复杂的测试结构,所以忍受我,

我有一系列的testng测试用例,每次我收集一些关于测试的数据(不是直接但是使用我写的库)。该库一旦获取数据就会启动另一个线程上的分析程序,主线程继续执行其余的测试。 (我之所以这样做是因为分析耗时很长,而且我不希望主测试被阻止)。

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

我最后不想要硬编码的睡眠。有没有办法可以指示TestNG等到这个测试产生的任何线程(直接或通过相关的库)完成?

1 个答案:

答案 0 :(得分:4)

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

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

2)使另一个线程成为非守护进程或用户线程:link

Thread.setDaemon(false);

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