はじめに
VSCodeでGoのコードを書いている場合、任意の関数・メソッド内で右クリックメニューから
Go: Generate Unit Tests For Function
を押すだけでテーブルテスト形式のテストが
編集中ファイル名_test.go
に自動生成され、さらにテスト関数の上に出るコードレンズのリンク
run test
をポチるだけでテスト実行できます。
ドチャクソ便利ですね。
↑これ
でも上記テストを実行する環境はVSCodeを開いた環境なので、
.env
等で環境変数を管理していると適用されません。
.envを使用するように設定を変更
Goのextentionには標準で設定項目が用意されているので、
そこに.envファイルのパスを指定するだけでOKです。
(開いているワークスペース直下に.env
ファイルが有ると仮定します。)
VSCodeの設定画面を開き、Go configurationの Test Env File
テキストフィールドに ${workspaceFolder}/.env
と指定しましょう。
![スクリーンショット 2019-08-30 2.38.10.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F128115%2F7014785e-bcff-8017-1d55-6a52001ebb69.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=7f659ed1dc08d3367dc4e14da976dada)
これだけでOKです。
あ、これはユーザー設定というよりPJに依存した設定であることが多いと思うので
User SettingsではなくWorkspase Settingsの方に書いたほうがいいかもしれません。
おまけ
スクショに見えているTest Env Vars
を編集でもテスト開始前に環境変数をセットできます。
また、Test Flags
をsettings.json
上で編集("go.testFlags": ["-v"],
を追加)して
-v
をつけておけば、テスト中に標準出力に吐かれたログを見ることができるので
テストがサイレント落ちして理由わかんねーよって時には威力を発揮します。