【发布时间】:2013-08-09 13:24:34
【问题描述】:
我有一个包含 6 个测试的 Junit 类。当第一个测试运行时,它会调用我的另一个类中的一个方法,该方法会启动一个新的 Thread()。我们就叫它MyThread吧。
这个想法是让MyThread 在 JUnit 测试完成后继续运行一段时间。
例如,要完成所有 JUnit 测试,需要 1 秒,因此我将设置 MyThread 运行 3 秒:
new Thread(new Runable(){
public void run(){
System.out.println("start");
Thread.sleep(3000);
System.out.println("end");
}
}).start();
start 将显示在标准输出上,但 end 永远不会显示。
在我看来,每当 JUnit 测试完成时,MyThread 也会关闭。
所以我想知道,JUnit 是否关闭了它启动的所有线程?非常感谢。
【问题讨论】:
-
好的,上下文:我所有的 6 个测试都连接到 HSQLDB 进程内数据库以完成某些工作。由于我不想在每次运行测试时都关闭连接,所以我让它们共享一个连接。我启动了一个线程来监视测试,当所有测试完成后,它将关闭连接和所有。但是每次我的 JUnit 测试结束时,该线程都会终止
标签: java multithreading junit