3

6 つのテストを含む Junit クラスがあります。最初のテストが実行されると、新しい Thread() を開始する他のクラスのメソッドの 1 つが呼び出されます。と呼びましょうMyThread

MyThreadJUnit テストが完了した後、もう少し長く実行し続けるためのアイデアです。

たとえば、すべての 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はありません。

MyThreadJUnit テストが完了するたびに、同様にシャットダウンされるように思えます。

だから私は疑問に思っています.JUnitはそれが開始したすべてのスレッドをシャットダウンしますか? どうもありがとう。

4

2 に答える 2

4

これは実際には JUnit ではなく、JVM の終了を担当する JUnit テスト (Eclipse や Maven など) を実行する外部システムです。これらは、すべてのスレッドを停止する System.exit を呼び出します。JUnit がそれを行った場合、外部システムは結果を処理する機会がありません。

于 2013-08-09T13:39:56.167 に答える