LoginSignup
3
1

More than 3 years have passed since last update.

VSCodeでコーディング中のRustコードを"Run test"ボタンでユニットテストする時に環境変数を効かせたかった

Posted at

VSCode_s.png
Run testのボタンでユニットテストするときに、何故かエラーになるので、どうしてカナ?って思った。
ターミナルから直接 cargo test するのは問題ないからコードのせいではないな、と。
最初コレ、デバッガーの機能だと勘違いしていたので、 launch.json いじくり回して悩んでいたんだ。
でもこれ、ターミナルで cargo run しているだけなんだね。
ちょっと気がつくのに時間がかかった。
そもそも、ターミナルからのテストは

$ env $(cat ../.env.sample) cargo test

と、環境変数を一時設定したshで実行していたので、 VSCode のターミナル実行も当然環境変数の設定のが必要なわけですね。
結論としては

$ tree .vscode
.vscode
├── launch.json
└── settings.json

ここに、settings.json作って環境変数を設定すると、ターミナルを開いたときに適用される。

{
    "terminal.integrated.env.linux": {
        "SET_ENV": "dev",
        "SET_DATABASE_URL": "mysql://root:password@127.0.0.1:3306/test_database01"
    }
}

こんな感じ1
めでたく、正常終了しました。

これって結局、Rustでもcragoでもなくて、VSCodeの設定の問題でしたね。
他の言語でもVSCodeのターミナル実行するケースでそのまま使えると思います。


  1. 設定して最初の一回目だけ「設定ファイル適用するか?」みたいなことを聞いてくる。「はい」と答えてもターミナルは既に開いてしまっているので、もう一度実行する必要があります。 

3
1
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
3
1