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

Azure DevOps Server用のサーバ証明書作成:その1

これを書いている時点ではAzure DevOps ServerはRC2が公開されていますが、TFS2017以降はWebサイトはSSLを推奨していることと、Chromeがhttpのサイトをエラーにするようになったので、自己署名証明書とWebサーバ証明書を作成して、Webサイトのhttps化に対応してみました。

“Azure DevOps Server用のサーバ証明書作成:その1” の続きを読む

TFSのジョブへのアクセス権変更

前回のADユーザ即時反映で、PowerShell実行時のユーザにはジョブ「AllJobs」に対してRead/Queueのアクセス権が必要であること、通常はTFS管理者に権限が割り当てられていると書きましたが、ユーザ追加の都度TFS管理者がシェルを実行するのが面倒なときは、開発者に権限を与えることができます。

“TFSのジョブへのアクセス権変更” の続きを読む