Sublime Text 2中的RubyTest

时间:2011-09-22 10:14:27

标签: ruby rspec sublimetext

我试图让RubyTest在Sublime Text 2中工作。我按照Github自述文件中的说明操作并得到以下错误。有谁知道我怎么解决这个问题?

/bin/sh: rspec: command not found

13 个答案:

答案 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的帖子,该帖子应该告诉你如何做到这一点。

http://wesbos.com/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相同的错误):

  1. 通过包控制管理器安装RubyTest插件。 注意*如果您没有安装软件包管理器 - 我强烈推荐它用于管理sublime插件 - 更多信息here

  2. 请务必将code here添加到RubyTest.sublime-settings文件中。 该文件位于(从菜单中):Preferences -> Package settings -> RubyTest -> Settings User

  3. 保存文件,关闭Sublime并使用(因此PATH在Sublime中可用)从项目文件夹中的终端重新启动Sublime:subl .

答案 9 :(得分:1)

不,您不需要更改路径,从命令行运行sublime等。 如果您使用的是RVM,则只需执行此操作:

转到Sublime Text 2,转到     preferances->包装设置 - > RubyTests

并选择设置 - 用户或设置 - 默认(取决于您使用的)并更改行:

"run_rspec_command": "rspec {relative_path}"

"run_rspec_command": "bundle exec rspec {relative_path}"

依此类推 - 将捆绑exec 添加到所有命令

enter image description here

答案 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