VSCodeからJUnitのテストを実行したりテスト結果を確認することができますが、設定によってはテスト結果の漢字が文字化けします。
ちなみに、今回の環境はこんな感じです。
vscode@1.32.3 MS-CEINTL.vscode-language-pack-ja@1.32.4 ms-vscode.PowerShell@1.11.0 ms-vsts.team@1.149.2 redhat.java@0.40.0 VisualStudioExptTeam.vscodeintellicode@1.1.4 vscjava.vscode-java-debug@0.17.0 vscjava.vscode-java-dependency@0.3.0 vscjava.vscode-java-pack@0.6.0 vscjava.vscode-java-test@0.15.0 vscjava.vscode-maven@0.15.1
加えて、ファイルの文字コードをUTF8にしたかったので、settings.jsonに以下の設定を追加しています。
"java.jdt.ls.vmargs":"-Dfile.encoding=UTF-8"
この環境でJUnitを実行すると、漢字部分が文字化けしてしまいました。
原因は、vmargsでファイルエンコードをUTF8にしてるのに、WindowsのデフォルトエンコードがシフトJISなので、テスト結果がシフトJISで作成されて、ちゃんと読み込めないからです。(のはず)
対策としては、setting.jsonに「java.test.config」を追加して、テスト時のエンコードもUTF8にしてしまいます。
"java.test.config": [ { "name": "MyDefault", "workingDirectory": "${workspaceFolder}", "args": [ "" ], "vmargs": [ "-Dfile.encoding=UTF-8" ], "env": { } } ], "java.test.defaultConfig": "MyDefault"
これで、テスト結果も文字化けしなくなりました。
(java.test.configについては、2019年1月ぐらいにドキュメントが追加されています。詳細はhttps://github.com/Microsoft/vscode-java-test/blob/master/runner-config.md)