昨日書いた「NetBeans&Mavenでテスト結果ウィンドウの日本語が文字化けする件」は設定が足りていないことが原因でした。
Javaビギナーな私には解決するまで若干手こずったので、一応まとめてみます。多分知識ある方からすれば何を今更という内容かもしれませんが…。
以下書籍のチュートリアル(第1章)をNetBeans&Mavenで始めた場合、という流れでまとめます。
実行環境は以下です。基本的にはNetBeans7.2.1を入れただけ、です。
実行環境
プロジェクトを作成する
ライブラリの追加
Mavenを利用しているので、pom.xmlにJUnitの依存性を記述します。
デフォルトで3.8.1の記述があるので
4.11に変えました。
テスト対象クラスを作成する
ソース・パッケージにJavaクラスを追加します。
ここでは書籍に合わせてクラス名にCalculator、パッケージにjunit.tutorialと記述しました。
コードを記述します。とりあえず書籍にあるmultiplyだけ入れました。
package junit.tutorial;
public class Calculator {
public int multiply(int x, int y){
return x * y;
}
}
テストクラスを作成する
テストクラスの作成
Mavenでプロジェクト作成をしたので、testフォルダは既にできています。
テスト・パッケージをみるとデフォルトで「AppTest.java」が出来ていますが、これはJUnit3.8.1で作られたサンプルなので、今回は削除します(4.11を使う前提とするため)。
テスト・パッケージで右クリックして、「その他」を選びます。
カテゴリ「単体テスト」を選び、右ペインで「JUnitテスト」を選択します。
クラス名「CalculatorTest」パッケージ名「junit.tutorial」を入力します。
下ペインはデフォルトでは全てチェックが入っていますが、書籍に合わせて一旦ここでは外しました(通常はつけたままのほうがいいと思います)。
以下のコードが生成されました(コメント部は削除してます)。
package junit.tutorial;
import org.junit.Test;
import static org.junit.Assert.*;
public class CalculatorTest {
public CalculatorTest() {
}
}
書籍にあるリスト1.4のコードを記述しました。
package junit.tutorial;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
public class CalculatorTest {
@Test
public void multiplyで乗算結果が取得できる(){
Calculator calc = new Calculator();
int expected = 12;
int actual = calc.multiply(3, 4);
assertThat(actual, is(expected));
}
}
テストメソッドは日本語です!!(もともとこれがやりたかった)
テストを実行する
最小限のコードはそろったので早速テストします。
プロジェクトを右クリックして「テスト」を選ぶと、プロジェクト全体に対してテスト実行します。
テスト実行が完了すると、テスト結果ファイルできたよー、ってNetBeansが通知してくれます。
(うまく表示されないこともあるっぽいですが…)
で、確認すると、文字化け orz これが昨日つまっていた状態です。
解決するには、pom.xmlに以下を追加します。
今までの手順だとpom.xml内にmaven-surefire-plugin、maven-surefire-report-pluginの記述はないのですが、明示的に記述します。
色々試してみたのですが、maven-surefire-pluginとmaven-surefire-report-pluginのバージョンが違っていたり、どちらかだけ記述している状態だと上記文字化け(というかUnicode表示)が起きるようです。とりあえず両方とも現時点での最新(2.12.4)では日本語表示されました。
再度テストを実行します。どりゃー。
日本語でたー!やったー!
文字化けしたときは焦りましたが、簡単な設定で解消して良かったです(^^;
というわけで、NetBeans&Mavenで日本語メソッド名を堪能できるようになったので書籍を読み進めよう~。