はじめに
Visual Studio Code(以下VSCode)にてGo言語開発での単体テスト実行をデバッグする手順を記載します。
前提条件
VSCodeにGoのデバッグ環境を導入する必要があります。
Visual Studio CodeでGo言語のデバッグ環境を整えるという記事を以前作ったのでこちらなどを参考に環境を準備してください。
全テストケースをデバッグ
$ cd $GoProjectRoot
$ go test -v
上記実行のデバッグをするための手順を示します。
GoプロジェクトのディレクトリをVSCodeで開く
対象のGoプロジェクトのディレクトリをVSCodeで開きます。
launch.jsonファイルを開く
下記スクショのようにデバッグボタン🐞→設定ボタン⚙でlaunch.jsonファイルを確認します。
launch.jsonを単体テストのデバッグ用に修正する
launch.jsonを下記に修正します。
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "test",
"program": "${workspaceRoot}",
"env": {},
"args": ["-test.v"],
"showLog": true
}
]
}
-
"mode"
には"test"
を設定しgo test
を実行することをデバッガに伝えます。 -
"program"
には"${workspaceFolder}"
を設定し、実行場所をプロジェクトのルートディレクトリに指定します。- VSCodeの予約語の詳細はこちらで確認できます。
-
"args"
に["-test.v"]
を設定することで-v
のVerbose outputになります。
デバッグを実行
F5でデバッグを実行します。
特定のテストケースのみ指定してデバッグ
func TestSample(t *testing.T) {...}
というケースがあり、このテストだけをデバッグしたい場合はlaunch.jsonを以下のように設定します。
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "test",
"program": "${workspaceRoot}",
"env": {},
"args": [
"-test.v",
"-test.run",
"TestSample"
],
"showLog": true
}
]
}
"args"
に"-test.run", "TestSample"
を設定することで対象ケースのみをデバッグ実行できます。