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 マルチスレッド