「Java」 コマンドラインから JUnit を使う

JUnit と言えば Eclipse なんかから使うことが多いかもしれないけど、
今回はコマンドラインから使ってみました。

試したバージョンは、特に理由はないけど 3.7 と 4.11 ( 2013/04/02 時点の最新 ) です。


1. テスト対象のコードを作成する

今回は簡単のため、以下のように四則演算するものでやりました。

以下のコードを書いて、コンパイルしておく。

public class Sample {
	public static void main(String[] args) {
	
	public int add(int a, int b) {
		return a + b;
	}
	
	public int sub(int a, int b) {
		return a - b;
	}
	
	public int mul(int a, int b) {
		return a * b;
	}
	
	public int div(int a, int b) {
		return a / b;
	}
}


2. テストケースを作成する

1 で作ったコードのテストケースを作成する。

以下もコンパイルしておく。
ex) javac -cp junit-3.7.jar;. SampleTest.java

import junit.framework.*;

public class SampleTest extends TestCase {
	
	public SampleTest(String s) {
		super(s);
	}
	
	public void test() throws Exception {
		Sample inst = new Sample();
		int add = inst.add(10,2);
		int sub = inst.sub(10,2);
		int mul = inst.mul(10,2);
		int div = inst.div(10,2);
		
		assertEquals(12, add);
		assertEquals(8, sub);
		assertEquals(20, mul);
		assertEquals(5, div);
	}
}


3. テストケースの実行

3.7 と 4.11 では Test Runnner が違うみたいなんで、わけて書きます。

(a) 3.7 の場合
java -cp junit-3.7.jar;. junit.swingui.TestRunner SampleTest

Test Runnner は、以下の API に情報あり。
http://junit.sourceforge.net/junit3.8.1/javadoc/junit/textui/TestRunner.html
3.8.1 の API だけど気にしない・・・

(b) 4.11 の場合
java -cp junit-4.11.jar;hamcrest-core-1.3.jar;. org.junit.runner.JUnitCore SampleTest

Test Runner は以下に情報あり。
https://github.com/junit-team/junit/wiki/Test-runners
API は以下です。
http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html

pom の 見ると、hamcrest に依存しているみたいなんで、
hamcrest-core-1.3.jar もクラスパスに通しておく。
http://search.maven.org/#artifactdetails%7Cjunit%7Cjunit%7C4.11%7Cjar