いまさら聞けないjunitの実行のやり方

junitを簡単にさっと実行したいと思うことはありませんか?

今回はjunitをコマンドラインから直接実行してみたいと思います

まずテストの対称となるクラスをつくります。

Hoge.java

package com.hoge;

public class Hoge {
	public Hoge(){
		System.out.println("hoge");
	}
}

次にそのテストをつくります

HogeTest.java

package com.hoge;

import static org.junit.Assert.*;
import org.junit.Test;
import com.hoge.Hoge;

public class HogeTest {
	@Test
	public void testHoge(){
		Hoge h = new Hoge();
		assertNotNull(h);
	}
} 

まずは対称のクラスをコンパイルします

javac -d . Hoge.java

-d . のオプションをつけてフォルダーを自動生成しましょう
-d のあとに .でカレントディレクトリからフォルダーのを生成します
com/hoge/Hoge.class ができます。

テストクラスをコンパイルしましょう

javac -d . HogeTest.java

com/hoge/HogeTest.class ができます。

	├── Hoge.java
	├── HogeTest.java
	└── com
		└── hoge
			├── Hoge.class
			└── HogeTest.class

このようなファイル構成になります
では実行してみましょう

java -cp .:/usr/share/java/hamcrest-core.jar:/usr/share/java/junit4.jar org.junit.runner.JUnitCore com.hoge.HogeTest	

-cp のあとには:でclasspathをつなげていきます
ここではまず
.:実行時のディレクトリでこれはcom.hogeを見つけるためです
つぎにはjunitとhamcrest-coreへのclasspathです
これはubuntuの時のpathです
org.junit.runner.JUnitCore をつけることでmainがないクラスを実行出来るようになります

Happy TDD :)