TestNGで日本語メソッド名のテストケースを実行する

現在のプロジェクトではユニットテストTestNGを使用しています。
なぜJUnitでなくTestNGを選択したかはまたの機会に。

さて、eclipseTestNGプラグインをインストールするとコンテキストメニューからTestNGを実行することができます。
もちろん、テスト単位で実行できますし、メソッド単位で一つ一つ実行することもできます。

が、メソッド名に日本語を使用している場合は実行時にUTF-8じゃないよと怒られてテストができません。

org.testng.TestNGException: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
	at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:334)
	at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:86)
	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:199)
	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:170)

あるケースだけ確認したいのに毎回毎回クラス単位やスイート単位で実行するのもアレなので、対応を行います。

対応内容は簡単。メソッドを選択して実行する際のエンコードが環境依存になっているので、eclipse自体のencodeをUTF-8にするだけです。
eclipse.iniに下記を追加します。

-Dfile.encoding=utf-8

eclipseを起動したままであれば再起動すると日本語名のテストケースを実行できます。

とはいえ、この設定は別にTestNGには関係無く、eclipse自体のデフォルトエンコードを指定してあげるので、
例えばeclipseでファイルを開くと勝手にShift-JISになってしまって設定が面倒とかにも対応出来ます。


もちろん、JUnitでも同様だと思われます。今度試してみます。