LoginSignup
2
0
個人開発エンジニア応援 - 個人開発の成果や知見を共有しよう!-

【VScode・Go言語】単体テストの設定をカスタマイズして快適な開発体験を!

Posted at

早速ですが、Gopherの皆さんはこちら↓のVScodeのTesting機能を活用されていますでしょうか?

image.png

Testing機能を活用すると、コマンドラインからテストを実行するのに比べて、以下のようなメリットがあります。

  • テスト実行時
    • ボタン1つでパッケージごとにテストを実行したり、特定のテストケース一つだけを実行できる
    • つまりコマンドラインから、実行したいテストケースを特定するためのオプションを指定する必要がない
      • ルートディレクトリから対象のテストまで辿っていくのって意外に面倒...
  • テスト実行後
    • より視覚的にテストの失敗箇所を特定することができる
      • コマンドラインから実行するときは、テスト結果の確認のためにターミナルの文字をスクロールして探す必要がある

ただし、実際の開発現場で使う場合には、テストを実行するために環境変数やフラグを指定する必要が往々にしてあると思うので、
今回の記事では、VscodeのTesting機能を活用する際のこれらのオプションの設定方法について紹介していきます!

設定方法

設定方法はシンプルです。

ctrl + shift + pを押してコマンドパレットを開いて、Preferences: Open User Settings (JSON)Preferences: Open Workspace Settings (JSON)を選択します。

多くの場合、Workspace Settingsの方に記述していくことになると思います。テストの実行オプションはプロジェクトごとに異なると思うので。

Settingsを開いたら、下記で紹介していくオプションの内、必要なものを追加していけばOKです。

フラグ

テスト実行時にArgumentsをつける場合にこちらのオプションを使います。

"go.testFlags": [
    "-v",
    "-cover"
]

こちらの場合は下記コマンドと同義になります。

go test ./... -v -cover

envファイル

参照するenvファイルを指定します。

Vscode上で開いているディレクトリからの相対パスで指定するために、${workspaceFolder}を使ってこのように記述します。

"go.testEnvFiles": "${workspaceFolder}/.env"

環境変数

envファイルから読み込む場合は前述のgo.testEnvFilesを使いますが、envファイルを用意しない場合や、ENV='LOCAL' go test ./...のようにコマンドラインから直接環境変数を指定するような使い方をしたい場合は、こちらのオプションを使います。

"go.testEnvVars": {
    "ENV": "LOCAL"
}

テスト実行時にファイルを保存

テスト実行時にファイルを保存したい場合は、testOnSaveのオプションを使います。

ただ、Vscodeの説明にもある通り、多くの方はAuto Saveを有効にしていると思うので、このオプションはあまり使わないかもしれません。

Run 'go test' on save for current package. It is not advised to set this to true when you have Auto Save enabled.

"go.testOnSave": true

tagsオプション

go test実行時のtagsオプションの使い方についてはこちらの記事で分かりやすく紹介されているので、ぜひ参考にしてみてください。

tagsオプションの設定方法は下記の通りです。

"go.testTags": "foo"

Timeout指定

デフォルトでは30秒のタイムアウトが設定されていますが、変更したい場合は下記のように設定します。

"go.testTimeout": "60s"
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0