Плагин возвышенного пытается запустить команду rspec
с помощью оболочки /bin/sh
. Однако команда не найдена, поскольку RVM не загружен в среде оболочки.
Таким образом, папка, в которой находится исполняемый файл rspec
, отсутствует в пути поиска оболочки (переменная среды PATH
). RVM устанавливает все исполняемые команды, поставляемые с гемами, в какое-то место, например: "/home/your-user/.rvm/gems/ruby-1.9.3-p194@myproject/bin/
" (фактический путь зависит от вашего гемсета, версии ruby и места, где ваша ОС хранит домашние каталоги пользователей)
Простое решение
Как упоминалось здесь... вы можете обнаружить, что простое выполнение возвышенного из среды оболочки, содержащей RVM (т.е. каталог вашего проекта) может решить проблему PATH
. Однако для этого необходимо каждый раз запускать текстовый редактор из командной строки и сохранять среду оболочки.
cd ~/src/my-ruby-project
subl .
После долгих экспериментов я нашел способ заставить подключаемый модуль RubyTest выполнять rspec
в правильной среде, контролируемой RVM (с поддержкой сборщика).
С поддержкой бандлера
Вот содержимое моего файла ~/.config/sublime-text-2/Packages/RubyTest/RubyTest.sublime-settings
:
{
"erb_verify_command": "~/.rvm/bin/rvm-auto-ruby $(~/.rvm/bin/rvm gemdir | sed -e 's/@.*//' -e 's/$/@global/' )/bin/bundle exec erb -xT - {file_name} | ~/.rvm/bin/rvm-auto-ruby -c",
"ruby_verify_command": "~/.rvm/bin/rvm-auto-ruby -c {file_name}",
"run_ruby_unit_command": "~/.rvm/bin/rvm-auto-ruby -Itest {relative_path}",
"run_single_ruby_unit_command": "~/.rvm/bin/rvm-auto-ruby -Itest {relative_path} -n '{test_name}'",
"run_cucumber_command": "~/.rvm/bin/rvm-auto-ruby $(~/.rvm/bin/rvm gemdir | sed -e 's/@.*//' -e 's/$/@global/' )/bin/bundle exec cucumber {relative_path}",
"run_single_cucumber_command": "~/.rvm/bin/rvm-auto-ruby $(~/.rvm/bin/rvm gemdir | sed -e 's/@.*//' -e 's/$/@global/' )/bin/bundle exec cucumber {relative_path} -l{line_number}",
"run_rspec_command": "~/.rvm/bin/rvm-auto-ruby $(~/.rvm/bin/rvm gemdir | sed -e 's/@.*//' -e 's/$/@global/' )/bin/bundle exec rspec {relative_path}",
"run_single_rspec_command": "~/.rvm/bin/rvm-auto-ruby $(~/.rvm/bin/rvm gemdir | sed -e 's/@.*//' -e 's/$/@global/' )/bin/bundle exec rspec {relative_path} -l{line_number}",
"ruby_unit_folder": "test",
"ruby_cucumber_folder": "features",
"ruby_rspec_folder": "spec",
"ruby_use_scratch" : false,
"save_on_run": false,
"ignored_directories": [".git", "vendor", "tmp"],
"hide_panel": false,
"before_callback": "",
"after_callback": ""
}
Это должно работать до тех пор, пока у вас есть сборщик в вашем глобальном наборе драгоценных камней и RVM, установленный в вашем домашнем каталоге (при необходимости отрегулируйте пути, если ~/.rvm
оценивается неправильно или если bundler
или rvm-auto-ruby
находится где-то еще).
Если вы используете наборы драгоценных камней, вы также должны добавить следующую строку в файл .rvmrc
вашего проекта:
rvm use ruby-1.9.3-p327@your_project_gemset_name
Без поддержки бандлера
Это предполагает, что вы установили cucumber
и rspec
в гемсет @global вашего текущего ruby:
{
"erb_verify_command": "~/.rvm/bin/rvm-exec $(~/.rvm/bin/rvm current) 1>/dev/null erb -xT - {file_name} | ~/.rvm/bin/rvm-auto-ruby -c",
"ruby_verify_command": "~/.rvm/bin/rvm-auto-ruby -c {file_name}",
"run_ruby_unit_command": "~/.rvm/bin/rvm-auto-ruby -Itest {relative_path}",
"run_single_ruby_unit_command": "~/.rvm/bin/rvm-auto-ruby -Itest {relative_path} -n '{test_name}'",
"run_cucumber_command": "~/.rvm/bin/rvm-auto-ruby $(~/.rvm/bin/rvm gemdir | sed -e 's/@.*//' -e 's/$/@global/' )/bin/cucumber {relative_path}",
"run_single_cucumber_command": "~/.rvm/bin/rvm-auto-ruby $(~/.rvm/bin/rvm gemdir | sed -e 's/@.*//' -e 's/$/@global/' )/bin/cucumber {relative_path} -l{line_number}",
"run_rspec_command": "~/.rvm/bin/rvm-auto-ruby $(~/.rvm/bin/rvm gemdir | sed -e 's/@.*//' -e 's/$/@global/' )/bin/rspec {relative_path}",
"run_single_rspec_command": "~/.rvm/bin/rvm-auto-ruby $(~/.rvm/bin/rvm gemdir | sed -e 's/@.*//' -e 's/$/@global/' )/bin/rspec {relative_path} -l{line_number}",
"ruby_unit_folder": "test",
"ruby_cucumber_folder": "features",
"ruby_rspec_folder": "spec",
"ruby_use_scratch" : false,
"save_on_run": false,
"ignored_directories": [".git", "vendor", "tmp"],
"hide_panel": false,
"before_callback": "",
"after_callback": ""
}
person
TrinitronX
schedule
26.11.2012
subl .
. Как вы думаете, это проблема $ PATH? - person bigpotato   schedule 08.09.2012