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のターミナル実行するケースでそのまま使えると思います。
-
設定して最初の一回目だけ「設定ファイル適用するか?」みたいなことを聞いてくる。「はい」と答えてもターミナルは既に開いてしまっているので、もう一度実行する必要があります。 ↩