如何在VSCode中使RSpec与调试器IDE一起使用

问题描述 投票:2回答:1

尽管花了大约三个小时的时间来使它正常工作,但我仍无法在RSpec的整个生命期内与VSCode上的调试器一起使用。我可以使Rspec在VSCode上的terminal中运行,但这并没有为我提供任何IDE的调试和调试功能。

这是我在launch.json文件中得到的:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Run RSpec - all",
            "type": "Ruby",
            "request": "launch",
            "cwd": "${workspaceRoot}",
            "program": "/Users/my-home-dir/.rvm/gems/ruby-2.6.5@project-gemset-name/wrappers/rspec",
            "pathToRDebugIDE": "/Users/my-home-dir/.rvm/gems/ruby-2.6.5@project-gemset-name/gems/ruby-debug-ide-0.7.2",
            "args": [
                "--pattern",
                "${workspaceRoot}/spec/**/*_rspec.rb"
            ]
        }
    ]
}

而且我的gemfile包含:

  gem 'ruby-debug-ide', '~>0.7.2'
  gem 'debase', '~>0.2.4.1'

我感觉到错误可能是由于RVM和VSCode之间的不兼容而引起的,但是我不知道如何解决该问题。

这都是按照Microsoft配方在这里进行的所有设置:https://github.com/Microsoft/vscode-recipes/tree/master/debugging-Ruby-on-Rails

每次运行此安装程序时,我都会在调试控制台中收到以下错误:

Debugger terminal error: Process failed: spawn rdebug-ide ENOENT

有什么方法可以运行它?还有什么办法让它使用Guard以便它自动运行?

ruby-on-rails visual-studio-code rspec vscode-debugger
1个回答
1
投票

我知道了。不幸的是,我没有使用RVM。因此,我的解决方案涉及rbenv。无论如何,我还是在这里分享它,以防它对您或其他人有帮助。

which rspec向我指出了rbenv用于执行在当前Ruby版本下安装的rspec版本的shim(shell脚本)。当我用该路径配置launch.json时,rdebug-ide不喜欢填充程序。我认为它正在期待可执行文件。

因此,我运行了rbenv which rspec,并获得了可执行文件的实际路径。一旦将其插入launch.json,它就可以正常工作。当然,如果更改正在运行的Ruby版本,则必须更新文件以指向在新版本的Ruby下安装的RSpec的版本。

鉴于Ruby版本管理器在社区中盛行,我认为ruby-debug-ide会考虑这一点。也许值得在他们的GitHub上发表一个问题:https://github.com/ruby-debug/ruby-debug-ide

© www.soinside.com 2019 - 2024. All rights reserved.