我试图让RubyTest在Sublime Text 2中工作。我按照Github自述文件中的说明操作并得到以下错误。有谁知道我怎么解决这个问题?
/bin/sh: rspec: command not found
答案 0 :(得分:63)
要使其工作,您只需要在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)就是这样。现在应该可以了。
祝你好运
答案 1 :(得分:42)
这对我有用:
如果您正在使用RVM,请使用项目文件夹中的命令行打开项目:
subl .
然后,它将挂钩红宝石版本和宝石。
答案 2 :(得分:7)
这很可能是由于使用RVM。什么是
的输出which rspec
在你的命令行上?
另外值得注意的是,仅仅因为你在Gemfile中包含了rspec-rails,并不意味着'rspec'是你系统知道的可执行程序。
您可以编辑RubyTest.sublime.settings以引用指向rspec可执行文件的特定路径,它应该可以正常工作。
不幸的是,这具有与一个特定版本的Ruby绑定的令人讨厌的副作用。如果您使用RVM在版本之间切换,则必须更新sublime.settings。
一个解决方法是从命令行运行Sublime。
答案 3 :(得分:6)
使用RubyTest插件运行Sublime Text 2(2165)。 Ruby和Gems使用rbenv(0.3.0)进行管理。
首次尝试使用RubyTest时出现以下错误:
/bin/sh: rspec: command not found
从命令行我跑了
which rspec
它没有返回任何结果。
经过一番挖掘后,我读到bundle install
没有将可执行文件放入$ PATH中。
Alternative executable paths not picked up by shims sometimes
为了在应用程序外部使用可执行程序,我必须删除由bundler安装的gem,然后手动安装。
gem uninstall rspec
gem install rspec
接着是
rbenv rehash
(注意您需要在应用内运行bundle
,以便更新宝石的位置)
必须对我在rbenv控制下的每个版本的ruby执行此操作。
现在我跑
which rspec
它位于路径中,RubyTest能够毫无问题地抓住它。
fwiw,我不得不重复黄瓜的步骤。要使用所有RubyTests的功能,ruby,cucumber和rspec可执行文件需要在$ PATH中(对于rbenv,它是~/.rbenv/shims/
)。
答案 4 :(得分:4)
尝试将路径更改为usr/local/bin/
我写了一篇关于Sublime Text Build Scripts的帖子,该帖子应该告诉你如何做到这一点。
答案 5 :(得分:3)
对我来说同样的问题。使用rspec 1.3.2我刚刚修复它的是编辑插件文件夹中的RubyTest.sublime.settings文件,更改“ruby_rspec_exec”键:
"ruby_rspec_exec": "rspec"
到
"ruby_rspec_exec": "spec"
这实际上取决于您拥有rspec可执行文件的位置......
答案 6 :(得分:3)
通过从repo克隆安装RubyTest后我遇到了同样的问题。我只是使用Package Control卸载并重新安装Sublime中的软件包,然后一切正常。
答案 7 :(得分:2)
您可以在此处查看此问题的摘要:https://github.com/maltize/sublime-text-2-ruby-tests/issues/36
基本上,Jim说的是正确的,你正在运行RVM或其他一些ruby vm管理器,它与你的PATH同样是猴子。按照这个问题的指示,我做了以下几点:
在我的项目中安装二进制文件
bundle install --binstubs
将路径添加到我的.bashrc并将其源化
echo 'export PATH="./bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
从命令行打开sublime项目(以便在Sublime Text 2中使用PATH)
subl .
答案 8 :(得分:1)
以下步骤对我有效(我遇到了与OP相同的错误):
答案 9 :(得分:1)
不,您不需要更改路径,从命令行运行sublime等。 如果您使用的是RVM,则只需执行此操作:
转到Sublime Text 2,转到 preferances->包装设置 - > RubyTests
并选择设置 - 用户或设置 - 默认(取决于您使用的)并更改行:
"run_rspec_command": "rspec {relative_path}"
到
"run_rspec_command": "bundle exec rspec {relative_path}"
依此类推 - 将捆绑exec 添加到所有命令
答案 10 :(得分:1)
我花了很多时间来解决同样的问题!我无法使用Michael Hartl“Ruby on Rails Tutorial”在Sublime Text 2中运行rspec。它一直说:
/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。现在所有测试都可以使用它!
答案 11 :(得分:0)
如果您正在寻找捆绑商支持,我找到了一个我发布的工作配置 here
答案 12 :(得分:0)
我正在使用rbenv并发现将以下内容添加到我的.bashrc中就可以了解
/Users/user/.rbenv/shims/rspec