#topicpath ---- //ここにコンテンツを記述します。 #contents ***コマンドラインやantから実行する。 [#x8920489] 今までEclipseでやってたんでmainメソッドを書いてなかったんですが、antやコマンドラインからやる場合、mainメソッドを作る必要があります。 -TestCaseのサブクラスの場合 public static void main(String[] args) { junit.textui.TestRunner.run(HogeTest.class); } -TestSuiteを作った場合 public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } でOKですね。 ***パッケージ内のすべてのテストクラスを実行する。 [#i99606ce] テスト対象のクラスが増えてくると、それとともにテストクラスが増えてくるわけですが、そのテストクラス群をすべて実行する方法です。まずパッケージ内のすべてのテストクラスを実行するには、AllTestsなどというクラスを同パッケージ内に作成し、 public static Test suite() というメソッドを実装します。このメソッド内で、TestSuiteクラスのインスタンスを作成し、テストクラスを追加すればよいのです。具体的には public static Test suite() { TestSuite suite = new TestSuite("Test for Package"); suite.addTest(new TestSuite(HogeTest.class)); suite.addTest(new TestSuite(FugaTest.class)); return suite; } とすると、HogeTest、FugaTestというテストクラスを一連で実行することができます。 ***パッケージ内のあるテストクラスのあるテストメソッドだけを実行する。 [#fa08b3f7] 上のやり方はテストクラスの全メソッドを実行してしまいますが、あるメソッドだけ再テストしたい場合もあると思います。その場合は new TestSuiteのところをテストクラスにして、Stringに変えればよいのです。文字列(下例ではtestMethodName)にはメソッド名を指定します。 public static Test suite() { TestSuite suite = new TestSuite("Test for Package"); // suite.addTest(new TestSuite(HogeTest.class)); suite.addTest(new HogeTest("testMethodName")); return suite; } こうするとHogeTestというテストクラスのtestMethodNameというテストメソッドだけが実行されます。 ***すべてのテストクラスを実行する。 [#g3599087] パッケージ内のすべてのテストクラスを実行するAllTestsを作成できたので、サブパッケージを実行するAllTestsクラスをrecursiveに作成すればすべてのテストクラスを実行することができます。 public static Test suite() { TestSuite suite = new TestSuite("Test for All Package"); suite.addTest(hoge.AllTests.suite()); suite.addTest(fuga.AllTests.suite()); return suite; } こうすると、hogeパッケージ内のすべてのテストクラス((hoge.AllTests.suite()はあらかじめ作成しておいてね))とfugaパッケージ内のすべてのテストクラス((もちろんこっちもあらかじめつくっとく))が実行されます。 ---- この記事は #vote(おもしろかった[9],そうでもない[1]) #vote(おもしろかった[10],そうでもない[1]) #comment #topicpath SIZE(10){現在のアクセス:&counter;}