RubyTest в возвышенном тексте 2 - PullRequest
41 голосов
/ 22 сентября 2011

Я пытаюсь заставить RubyTest работать в Sublime Text 2. Я выполнил инструкцию по чтению Github и получил следующую ошибку. Кто-нибудь знает, как я мог это исправить?

/bin/sh: rspec: command not found

Ответы [ 13 ]

63 голосов
/ 24 января 2013

Чтобы это работало, вам нужно изменить только один параметр в пакете RubyTest в sb2.

Если вы используете rvm, ваш rspec gem устанавливается через rvm и не находится в / bin / sh

Так что вам нужно установить пакет RubyTest для Sublime Text 2 для автоматической проверки переменных среды rvm.

Что изменить:

1) В Sublime Text 2 перейдите в «Настройки» | «Обзор пакетов». Это откроет каталог ваших пакетов.

2) Откройте каталог 'RubyTest' и найдите файл 'RubyTest.sublime-settings'.

3) найдите строку, которая говорит:

"check_for_rvm": false,

и измените его на:

"check_for_rvm": true,

сохранить изменения.

4) Вот и все. Теперь он должен работать.

Удачи

42 голосов
/ 28 июля 2012

Это сработало для меня:

Если вы используете RVM, откройте проект с командной строкой из папки проекта:

subl .

Затем он подключит версию rubyи драгоценные камни.

7 голосов
/ 03 октября 2011

Скорее всего, это связано с использованием RVM.Каков вывод

which rspec

в командной строке?

Также следует отметить, что только то, что вы включили rspec-rails в Gemfile, не означает, что rspecисполняемая программа, о которой знает ваша система.

Вы можете отредактировать параметры RubyTest.sublime.setting, чтобы они указывали на ваш конкретный путь к исполняемому файлу rspec, и он должен работать.

К сожалению, это имеетнеприятный побочный эффект от привязки к одной конкретной версии Ruby.Если вы используете RVM для переключения между версиями, вам придется обновить sublime.settings.

Один из способов - запустить Sublime из командной строки.

6 голосов
/ 21 января 2012

Запуск Sublime Text 2 (2165) с плагином RubyTest.Ruby и Gems обошлись с помощью rbenv (0.3.0).

Первая попытка использования RubyTest дала следующую ошибку: /bin/sh: rspec: command not found

Из командной строки я запустил which rspec, и он не дал результатов.

После некоторого копанияЯ читал, что bundle install не помещает исполняемые файлы в ваш $ PATH. Альтернативные пути к исполняемым файлам, которые иногда не выбираются шиммами

Чтобы использовать исполняемый файл вне приложения, мне пришлось удалить гем, установленный компоновщиком, а затем установить его вручную.

gem uninstall rspec

gem install rspec

, затем

rbenv rehash ( Примечание , вам нужно будет запустить bundle внутри приложенияпоэтому он обновляет местоположение драгоценного камня)

Это должно было выполняться для каждой версии ruby, находящейся под контролем rbenv.

Теперь, когда я запускаю

which rspec

он найден в пути, и RubyTest может без проблем захватить его.

Кстати, мне пришлось повторить шаги и для огурца.Чтобы использовать все возможности RubyTests, исполняемые файлы ruby, cucumber и rspec должны находиться в вашем $ PATH (для rbenv это ~/.rbenv/shims/).

4 голосов
/ 29 сентября 2011

Попробуйте изменить путь на usr/local/bin/

Я написал сообщение о сценариях Sublime Text Build, которое должно показать вам, как это сделать.

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

3 голосов
/ 09 ноября 2012

У меня была такая же проблема после установки RubyTest путем клонирования из репозитория. Я просто удалил и переустановил пакет внутри Sublime с помощью Package Control, тогда все работало нормально.

3 голосов
/ 21 января 2012

Та же проблема для меня. В rspec 1.3.2 я только что исправил это, отредактировав файл RubyTest.sublime.settings в папке плагина, изменив ключ «ruby_rspec_exec» из:

"ruby_rspec_exec": "rspec"

до

"ruby_rspec_exec": "spec"

Это действительно зависит от места, где у вас есть исполняемый файл rspec ...

2 голосов
/ 22 февраля 2012

Краткое описание этой проблемы можно посмотреть здесь: https://github.com/maltize/sublime-text-2-ruby-tests/issues/36

По сути, то, что Джим сказал правильно, вы используете RVM или какой-нибудь другой ruby ​​vm manager, который аналогично настроен на ваш PATH. Следуя указаниям из этого номера, я сделал следующее:

Установить двоичные файлы в моем проекте

bundle install --binstubs

Добавьте путь к моему .bashrc и получите его

echo 'export PATH="./bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Открыть возвышенный проект из командной строки (чтобы PATH был доступен в Sublime Text 2)

subl .
1 голос
/ 15 марта 2013

Я потратил много часов на борьбу с этой же проблемой! Я не смог заставить rspec работать в Sublime Text 2, используя «Учебник по Ruby on Rails» Майкла Хартла. Это продолжало говорить:

/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,

Затем я копался в коде Python run_ruby_test.py: 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 я зашел в Terminal, перешел в каталог с моим Rails-приложением и запустил spork

Наконец, я открыл static_pages_spec.rb в Sublime Text 2. Теперь все тесты работают с ним!

1 голос
/ 23 февраля 2013

Нет, вам не нужно менять пути, запускать возвышенное из командной строки и т. Д. Если вы используете 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 ко всем командам

enter image description here

...