这个问题的出现取决于我正在处理的 Ruby 项目。VSCode 任务通常不会从正确的rbenvRuby 版本运行。有时,如果我先从集成终端手动运行命令,然后运行代码任务,它会选择正确的 Ruby。
示例 VSCode 任务,
{
"version": "2.0.0",
"tasks": [
{
"label": "Run All Tests",
"type": "shell",
"command": "bin/rails test",
"group": "test",
"presentation": {
"reveal": "always",
"panel": "shared"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
当从项目目录(或任何其他方式)启动代码时,如果我运行此任务,它将从系统 ruby 的上下文运行。但是,如果我打开集成终端并输入bin/rails test(有效),然后再次运行该任务,它将在正确的rbenvshimed ruby 上下文中运行。
然而,启动调试器会话确实可以在正确的 Ruby 上下文中工作,所以我真的不明白错过了什么。