我正在從Eclipse 3.4.1運行JUnit測試用例。這個測試用例創建了一個啓動線程來完成某些任務的類。當測試方法結束時,似乎Eclipse正在強制關閉該線程。無法運行包含來自Eclipse的線程的JUnit測試用例
如果我從命令行運行相同的測試,則線程正常運行。
不知何故,我不記得以前遇到過這樣的Eclipse問題。這是一直存在於Eclipse中的東西還是他們在3.4.x中添加的?
下面是一個例子:
當我從Eclipse運行這個測試,我得到的CNT(直到約1800)的幾個printts然後測試用例utomatically終止。但是,如果我運行啓動JUnit的TestRunner的主方法,那麼線程將不確定地計數。
import junit.framework.TestCase;
import junit.textui.TestRunner;
/**
* This class shows that Eclipses JUnit test case runner will forcibly
* terminate all running threads
*
* @author pshah
*
*/
public class ThreadTest extends TestCase {
static Runnable run = new Runnable() {
public void run() {
int cnt = 0;
while(true) System.out.println(cnt++);
}
};
public void testThread() {
Thread t = new Thread(run);
t.start();
}
public static void main(String args[]) {
TestRunner runner = new TestRunner();
runner.run(ThreadTest.class);
}
}
你正確地加入() - 你的線程在測試中嗎? – Kosi2801 2009-04-17 13:30:25
您是否從thread.ne獲取響應,請不要讓我知道。因爲Junit不具備從應用程序線程獲取響應的能力。 – Giridhar 2009-04-21 15:41:54