我正在尝试让RubyTest在 Sublime Text 2 中工作。我按照 Github 自述文件上的说明进行操作并收到以下错误。有谁知道我该如何解决这个问题?
/bin/sh: rspec: command not found
我正在尝试让RubyTest在 Sublime Text 2 中工作。我按照 Github 自述文件上的说明进行操作并收到以下错误。有谁知道我该如何解决这个问题?
/bin/sh: rspec: command not found
要使其工作,您只需更改 sb2 中 RubyTest 包中的一项设置。
如果您使用的是 rvm,则您的 rspec gem 是通过 rvm 安装的,并且在 /bin/sh 中找不到
所以你需要为 Sublime Text 2 设置 RubyTest 包来自动检查你的 rvm 环境变量。
要改变什么:
1) 在 Sublime Text 2 中,转到首选项|浏览包。这将打开你的包目录。
2) 打开“RubyTest”目录并查找文件“RubyTest.sublime-settings”。
3)找到说:
"check_for_rvm": false,
并将其更改为:
"check_for_rvm": true,
保存更改。
4) 就是这样。它现在应该可以工作了。
祝你好运
这对我有用:
如果您使用的是 RVM,请从项目文件夹中使用命令行打开一个项目:
subl .
然后,它将挂钩 ruby 版本和 gems。
这很可能是由于使用了 RVM。什么是输出
which rspec
在你的命令行上?
另外值得注意的是,仅仅因为您在 Gemfile 中包含了 rspec-rails,并不意味着“rspec”是您的系统知道的可执行程序。
您可以编辑 RubyTest.sublime.settings 以引用您的 rspec 可执行文件的特定路径,它应该可以工作。
不幸的是,这有一个讨厌的副作用,就是绑定到一个特定版本的 Ruby。如果您使用 RVM 在版本之间切换,则必须更新您的 sublime.settings。
一种解决方法是从命令行运行 Sublime。
使用 RubyTest 插件运行 Sublime Text 2(2165)。使用 rbenv (0.3.0) 管理的 Ruby 和 Gems。
第一次尝试使用 RubyTest 出现以下错误:
/bin/sh: rspec: command not found
从我运行的命令行
which rspec
,它没有返回任何结果。
经过一番挖掘,我读到它bundle install
没有将可执行文件放在你的 $PATH 中。
有时 shims 不拾取的替代可执行路径
为了在应用程序外部使用可执行文件,我不得不删除捆绑程序安装的 gem,然后手动安装。
gem uninstall rspec
gem install rspec
其次是
rbenv rehash
(请注意,您需要bundle
在应用程序中运行,以便更新 gem 的位置)
这必须对我在 rbenv 控制下的每个版本的 ruby 执行。
现在当我跑
which rspec
它在路径中找到,RubyTest 能够毫无问题地抓取它。
fwiw,我也不得不重复黄瓜的步骤。要使用 RubyTests 的所有功能,ruby、cucumber 和 rspec 可执行文件需要在您的 $PATH 中(对于 rbenv 它是~/.rbenv/shims/
)。
尝试将路径更改为usr/local/bin/
我写了一篇关于 Sublime Text Build Scripts 的帖子,它应该向您展示如何做到这一点。
对我来说同样的问题。对于 rspec 1.3.2,我刚刚修复它的方法是编辑插件文件夹中的 RubyTest.sublime.settings 文件,将“ruby_rspec_exec”键从:
"ruby_rspec_exec": "rspec"
到
"ruby_rspec_exec": "spec"
这实际上取决于您拥有 rspec 可执行文件的位置...
通过从 repo 克隆安装 RubyTest 后,我遇到了同样的问题。我只是使用包控制卸载并重新安装了 Sublime 中的包,然后一切正常。
您可以在此处查看此问题的摘要:https ://github.com/maltize/sublime-text-2-ruby-tests/issues/36
从本质上讲,Jim 所说的是正确的,您正在运行 RVM 或其他一些与您的 PATH 类似的 ruby vm 管理器。按照这个问题的指示,我做了以下事情:
在我的项目中安装二进制文件
bundle install --binstubs
将路径添加到我的 .bashrc 并获取它
echo 'export PATH="./bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
从命令行打开 sublime 项目(这样 PATH 在 Sublime Text 2 中可用)
subl .
以下步骤对我有用(我遇到了与 OP 相同的错误):
不,您不需要更改路径、从命令行运行 sublime 等。如果您使用的是 RVM,您只需要这样做:
转到 Sublime Text 2,转到首选项-> 包设置-> RubyTests
并选择 settings-user 或 settings-default (取决于您使用的是什么)并更改行:
"run_rspec_command": "rspec {relative_path}"
到
"run_rspec_command": "bundle exec rspec {relative_path}"
等等 - 将bundle exec添加到所有命令
我花了很多时间来解决同样的问题!使用 Michael Hartl “Ruby on Rails 教程”,我无法让 rspec 在 Sublime Text 2 中运行。它一直在说:
/bin/sh: rspec: command not found
我终于意识到 RubyTest 包(https://github.com/maltize/sublime-text-2-ruby-tests)正在为我的 RVM 寻找错误的地方!
在我的 Mac 上,RubyTest 的路径是/Library/Application Support/Sublime Text 2/Packages/Ruby Test
首先,为了让 RubyTest 寻找 RVM,我将 RubyTest.sublime-settings 中的参数从
"check_for_rvm": false, to "check_for_rvm": true,
然后我挖掘了run_ruby_test.py的Python代码:https ://github.com/maltize/sublime-text-2-ruby-tests/blob/master/run_ruby_test.py
在第 151 行,在 BaseRubyTask 类中,我的 RVM 的路径错误:
rvm_cmd = os.path.expanduser('~/.rvm/bin/rvm-auto-ruby')
我将其更改为完整的正确路径:rvm_cmd = os.path.expanduser('/usr/local/rvm/bin/rvm-auto-ruby')
如果这不是您的路径,请通过键入找到正确的路径
$ which rvm-auto-ruby
并代替它。
保存 run_ruby_test.py 后,我转到终端,cd 到我的 Rails 应用程序目录,然后运行spork
最后,我在 Sublime Text 2 中打开了 static_pages_spec.rb。现在所有的测试都可以使用它!
我正在使用 rbenv 并发现将以下内容添加到我的 .bashrc 就可以了
/Users/user/.rbenv/shims/rspec