Eclipse 3.4.1からJUnitテストケースを実行しています。このテストケースでは、スレッドを開始して何らかの処理を行うクラスを作成します。テストメソッドが終了すると、Eclipseが強制的にスレッドをシャットダウンしているようです。Eclipseからスレッドを含むJUnitテストケースを実行できません
コマンドラインから同じテストを実行すると、スレッドは正しく実行されます。
どういうわけか私はEclipseでこのような問題にぶつかるのを覚えていません。これはEclipseに常に存在していたものか、3.4.xで追加したものですか?ここで
は一例です:私は、Eclipseからこのテストを実行すると
は、私は(約1800まで)CNTの数printtsを取得し、テストケースをutomatically終了されます。しかし、JUnitのTestRunnerを起動するmainメソッドを実行すると、スレッドは無期限にカウントされます。
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
Junitはアプリケーションスレッドからの応答を得ることができないため、thread.ifからの応答を受け取っていますか? – Giridhar
いくつかのコード例を教えてください。 – guerda