VSCodeでコーディング中のRustコードを"Run test"ボタンでユニットテストする時に環境変数を効かせたかった
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:[email protected]:3306/test_database01"
}
}
こんな感じ1。
めでたく、正常終了しました。
これって結局、Rust
でもcrago
でもなくて、VSCode
の設定の問題でしたね。
他の言語でもVSCodeのターミナル実行するケースでそのまま使えると思います。
-
設定して最初の一回目だけ「設定ファイル適用するか?」みたいなことを聞いてくる。「はい」と答えてもターミナルは既に開いてしまっているので、もう一度実行する必要があります。 ↩
Author And Source
この問題について(VSCodeでコーディング中のRustコードを"Run test"ボタンでユニットテストする時に環境変数を効かせたかった), 我々は、より多くの情報をここで見つけました https://qiita.com/ayumi-ikeda/items/b85dcbc2946f22477095著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .