【问题标题】:RubyTest in Sublime Text 2Sublime Text 2 中的 RubyTest
【发布时间】:2011-11-22 17:03:52
【问题描述】:

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

/bin/sh: rspec: command not found

【问题讨论】:

    标签: ruby rspec sublimetext


    【解决方案1】:

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

    祝你好运

    【讨论】:

    • 这很完美,而且比其他答案更容易。
    • 谢谢,这正是我需要的。
    • 谢谢,帮了大忙。
    • 如果你找不到那个目录/文件并且你已经安装了 RubyTest,你也可以通过 Preferences -> Package settings -> RubyTest -> Settings User 并添加"check_for_rvm": true 到现有的散列中,如果文件为空,则放入一个新的散列中。
    【解决方案2】:

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

    【讨论】:

    • 我也在使用 RVM,但只需将 check_for_rvm 设置为 true 即可使其工作。
    【解决方案3】:

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

    /Users/user/.rbenv/shims/rspec
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 一段时间后我找到了自己的答案,而现在,一年后,它在新机器上对我不起作用:) 接受的答案有帮助 stackoverflow.com/a/14504365/1612469 难怪我得了零投票:)
      • 这个对我有用,而接受的答案却没有。赞成!
      【解决方案5】:

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

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

      2. 确保将 code here 添加到您的 RubyTest.sublime-settings 文件中。 该文件可以在(从菜单中)找到:Preferences -> Package settings -> RubyTest -> Settings User

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

          这对我有用:

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

          subl .
          

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

          【讨论】:

          • 最后,我知道必须有一个简单的解决方案!
          【解决方案8】:

          您可以在此处查看此问题的摘要: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 项目(这样 PATH 在 Sublime Text 2 中可用)

          subl .
          

          【讨论】:

            【解决方案9】:

            使用 RubyTest 插件运行 Sublime Text 2(2165)。使用 rbenv (0.3.0) 管理的 Ruby 和 Gems。

            第一次尝试使用 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 以便更新 gem 的位置)

            这必须针对我在 rbenv 控制下的每个 ruby​​ 版本执行。

            现在当我跑步时

            which rspec

            在路径中找到它,RubyTest 能够毫无问题地抓取它。

            fwiw,我也不得不重复黄瓜的步骤。要使用 RubyTests 的所有功能,ruby、cucumber 和 rspec 可执行文件需要在您的 $PATH 中(对于 rbenv,它是 ~/.rbenv/shims/)。

            【讨论】:

              【解决方案10】:

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

              "ruby_rspec_exec": "rspec"
              

              "ruby_rspec_exec": "spec"
              

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

              【讨论】:

                【解决方案11】:

                这很可能是由于使用了 RVM。

                的输出是什么
                which rspec
                

                在你的命令行上?

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

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

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

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

                【讨论】:

                • 通过运行 subl 打开我的项目。从终端对我来说是一个很好的解决方法!
                【解决方案12】:

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

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

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

                【讨论】:

                • 这并没有真正让 ruby​​test 运行,并且丢失了 ruby​​test 的最佳部分,即 cmd-shift-e run last test 命令。
                猜你喜欢
                • 2013-08-28
                • 1970-01-01
                • 1970-01-01
                • 2012-12-19
                • 1970-01-01
                • 2013-07-31
                • 1970-01-01
                • 2015-04-05
                • 1970-01-01
                相关资源
                最近更新 更多