41

我正在尝试让RubyTest在 Sublime Text 2 中工作。我按照 Github 自述文件上的说明进行操作并收到以下错误。有谁知道我该如何解决这个问题?

/bin/sh: rspec: command not found
4

12 回答 12

62

要使其工作,您只需更改 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) 就是这样。它现在应该可以工作了。

祝你好运

于 2013-01-24T15:02:37.640 回答
43

这对我有用:

如果您使用的是 RVM,请从项目文件夹中使用命令行打开一个项目:

subl .

然后,它将挂钩 ruby​​ 版本和 gems。

于 2012-07-27T21:12:50.800 回答
7

这很可能是由于使用了 RVM。什么是输出

which rspec

在你的命令行上?

另外值得注意的是,仅仅因为您在 Gemfile 中包含了 rspec-rails,并不意味着“rspec”是您的系统知道的可执行程序。

您可以编辑 RubyTest.sublime.settings 以引用您的 rspec 可执行文件的特定路径,它应该可以工作。

不幸的是,这有一个讨厌的副作用,就是绑定到一个特定版本的 Ruby。如果您使用 RVM 在版本之间切换,则必须更新您的 sublime.settings。

一种解决方法是从命令行运行 Sublime。

于 2011-10-03T18:36:54.587 回答
6

使用 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/)。

于 2012-01-21T18:54:43.070 回答
4

尝试将路径更改为usr/local/bin/

我写了一篇关于 Sublime Text Build Scripts 的帖子,它应该向您展示如何做到这一点。

http://wesbos.com/sublime-text-build-scripts/

于 2011-09-29T18:48:50.973 回答
3

对我来说同样的问题。对于 rspec 1.3.2,我刚刚修复它的方法是编辑插件文件夹中的 RubyTest.sublime.settings 文件,将“ruby_rspec_exec”键从:

"ruby_rspec_exec": "rspec"

"ruby_rspec_exec": "spec"

这实际上取决于您拥有 rspec 可执行文件的位置...

于 2012-01-21T00:40:03.560 回答
3

通过从 repo 克隆安装 RubyTest 后,我​​遇到了同样的问题。我只是使用包控制卸载并重新安装了 Sublime 中的包,然后一切正常。

于 2012-11-09T04:05:43.033 回答
2

您可以在此处查看此问题的摘要: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 .
于 2012-02-21T20:48:51.693 回答
1

以下步骤对我有用(我遇到了与 OP 相同的错误):

  1. 通过包控制管理器安装 RubyTest 插件。注意*如果你没有安装包管理器——我强烈推荐它来管理 sublime 插件——更多信息在这里

  2. 请务必将此处的代码添加到您的 RubyTest.sublime-settings 文件中。该文件可以在(从菜单中)找到:Preferences -> Package settings -> RubyTest -> Settings User

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

于 2012-12-12T20:27:42.847 回答
1

不,您不需要更改路径、从命令行运行 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添加到所有命令

在此处输入图像描述

于 2013-02-23T15:36:03.473 回答
1

我花了很多时间来解决同样的问题!使用 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。现在所有的测试都可以使用它!

于 2013-03-15T18:43:04.533 回答
0

我正在使用 rbenv 并发现将以下内容添加到我的 .bashrc 就可以了

/Users/user/.rbenv/shims/rspec
于 2013-04-25T03:05:50.543 回答