崇高なプラグインは、rspec
shell を使用してコマンドを実行しようとしています/bin/sh
。ただし、シェルの環境に RVM がロードされていないため、コマンドが見つかりません。
そのため、rspec
実行可能ファイルが配置されているフォルダーは、シェルの検索パス (PATH
環境変数) にはありません。RVM は、gem に付属する実行可能コマンドを次のような場所にインストールします: " /home/your-user/.rvm/gems/ruby-1.9.3-p194@myproject/bin/
" (実際のパスは、gemset、ruby のバージョン、および OS がユーザーのホーム ディレクトリを保存する場所によって異なります)
シンプルなソリューション
ここで述べたように... RVM を含むシェル環境 (つまり、プロジェクト ディレクトリ) から sublime を実行するだけで問題が解決する場合があり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": ""
}
これは、グローバル gemset にバンドラーがあり、RVM がホーム ディレクトリにインストールされている限り機能します (が正しく評価されない場合、またはまたはが別の場所にある場合は、必要に応じてパスを調整~/.rvm
bundler
rvm-auto-ruby
します)。
gemsets を使用している場合は、プロジェクトの.rvmrc
ファイルに次のような行も追加する必要があります。
rvm use ruby-1.9.3-p327@your_project_gemset_name
バンドラーのサポートなし
これは、現在のruby の@global gemset がインストールされていることを前提cucumber
としています。rspec
{
"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": ""
}