VSCodeでJUnitの結果表示が文字化けする

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください