MultiThread
JUnit テストケースをマルチスレッドで呼び出したい場合はActiveTestSuiteを使う。
■コード(元のテスト)
package hello.junit;
import junit.framework.TestCase;
public class HelloTestCase extends TestCase {
public void test001() {
System.out.println("HelloTestCase#test001:thread id="
+ Thread.currentThread().getId());
}
public void test002() {
System.out.println("HelloTestCase#test002:thread id="
+ Thread.currentThread().getId());
}
}
■コード(シングルスレッドで呼び出すTestSuite)の場合
package hello.junit;
import junit.framework.Test;
import junit.framework.TestSuite;
public class AllTests {
public static Test suite() {
TestSuite suite = new TestSuite("Test for hello.junit");
//$JUnit-BEGIN$
suite.addTestSuite(HelloTestCase.class);
suite.addTestSuite(HelloTestCase.class);
//$JUnit-END$
return suite;
}
}
■結果
HelloTestCase#test001:thread id=1
HelloTestCase#test002:thread id=1
HelloTestCase#test001:thread id=1
HelloTestCase#test002:thread id=1
■コード(マルチスレッドで呼び出すActiveTestSuite)の場合
package hello.junit;
import junit.extensions.ActiveTestSuite;
import junit.framework.Test;
public class AllTestsMultThread {
public static Test suite() {
ActiveTestSuite suite = new ActiveTestSuite("Test for hello.junit");
//$JUnit-BEGIN$
suite.addTestSuite(HelloTestCase.class);
suite.addTestSuite(HelloTestCase.class);
//$JUnit-END$
return suite;
}
}
■結果(マルチスレッドで呼び出すActiveTestSuite)の場合
HelloTestCase#test001:thread id=9
HelloTestCase#test002:thread id=9
HelloTestCase#test001:thread id=10
HelloTestCase#test002:thread id=10
tags
---
JUnit MultiThread マルチスレッド