2017-05-10 21 views
7

IntelliJの内部から仕様を実行しています。私は私の宝石を削除し、(別のエラーのために)バンドルインストールを使用してそれらを再インストールし、今は仕様を実行しようとするとエラーが発生しています。IntelliJのRunnin rspec

私はIntelliJのからスペックを実行している、それが使用していることに気付きました:

シェルから実行するときにケースではありません
from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 

は(私はそれをチェックkernel_requireスクリプト内でプリントを配置しました)。

また、私はIntelliJのからRubyのバージョンがあることがわかりました。私が実行しようとすると

/home/user/.rvm/rubies/ruby-2.2.4/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /home/user/.rvm/gems/ruby-2.2.4/bin/rspec /home/user/workspace/auto-test/spec/pools/pool_cg_view_spec.rb --require teamcity/spec/runner/formatter/teamcity/formatter --format Spec::Runner::Formatter::TeamcityFormatter 
    Testing started at 10:21 ... 
    /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': incompatible library version - /home/user/.rvm/gems/ruby-2.2.4/gems/nokogiri-1.6.8/lib/nokogiri/nokogiri.so (LoadError) 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/nokogiri-1.6.8/lib/nokogiri.rb:32:in `rescue in <top (required)>' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/nokogiri-1.6.8/lib/nokogiri.rb:28:in `<top (required)>' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/capybara-2.7.1/lib/capybara.rb:3:in `<top (required)>' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/capybara-2.7.1/lib/capybara/dsl.rb:2:in `<top (required)>' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/capybara-2.7.1/lib/capybara/rspec.rb:2:in `<top (required)>' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `require' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `rescue in require' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:39:in `require' 
     from /home/user/workspace/auto-test/spec/support/capybara.rb:3:in `<top (required)>' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from /home/user/workspace/auto-test/spec/spec_helper.rb:6:in `block in <top (required)>' 
     from /home/user/workspace/auto-test/spec/spec_helper.rb:6:in `each' 
     from /home/user/workspace/auto-test/spec/spec_helper.rb:6:in `<top (required)>' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from /home/user/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in `block in requires=' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in `each' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in `requires=' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:109:in `block in process_options_into' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:108:in `each' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:108:in `process_options_into' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:21:in `configure' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:101:in `setup' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:88:in `run' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:73:in `run' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:41:in `invoke' 
     from /home/user/.rvm/gems/ruby-2.2.4/gems/rspec-core-3.4.1/exe/rspec:4:in `<top (required)>' 
     from /home/user/.rvm/gems/ruby-2.2.4/bin/rspec:23:in `load' 
     from /home/user/.rvm/gems/ruby-2.2.4/bin/rspec:23:in `<top (required)>' 
     from -e:1:in `load' 
     from -e:1:in `<main>' 

    Process finished with exit code 1 

"ruby 2.2.4: 230" 

とシェルから:

ruby -e 'print "ruby #{ RUBY_VERSION }p#{ RUBY_PATCHLEVEL }"' 
ruby 2.2.6p396%  

エラーシェルの仕様は動作しますが、エラーは発生しませんので、問題は実行の設定に関係していますが、何がわからないのでしょうか。

今まで働いていた実行構成:

enter image description here

私は鋸山宝石を削除して再インストールしようとしましたが、まだ同じきました。

アイデア?

プロジェクト構造: enter image description here

+0

に見出すことができます。また、ファイル|スクリーンショットからスクリーンショットを添付してください。プロジェクトの構成|モジュールです。 – Olivia

+0

rvmを使って私は得る: /home/user/.rvm/gems/ruby-2.2.4を使って、どのように役立つのですか?私はプロジェクトの構造のSDKの部分を添付しないでください?なぜモジュールは適切ですか? –

+0

'rvm use' +必要なrubyのバージョンは、シェルのSDKを変更します。同じプロジェクトに複数のモジュール(異なるタイプのモジュール)を追加でき、それぞれに独自のSDKが設定されている可能性があるので、私はモジュールについて尋ねました。 – Olivia

答えて

4

コンソールを使用しているときは、ルビー2.2.6であることを指摘しています。 IntelliJはノコギリ宝石を紛失していると不平を言っている。

最後のbundle installは、Ruby 2.2.4(IntelliJで使用されていたもの)ではなく、ruby 2.2.6を使用して宝石をインストールした可能性があります。

私はこれを絞り込むには、以下の手順をお勧めします。

  • を確認し、あなたがシェルにルビー2.2.4を使用していることを確認(これは非常に重要です!)
  • 実行bundle installすべての宝石を保証するために、これは、その後のIntelliJで実行されているスペックを試みる成功した場合、プロジェクトの
  • ルビー2.2.4用にインストールされているが

シェルの中で、あなたのスペックを実行します。 これは、上記の手順がうまくいった場合に有効です。

私のプロジェクトでは、現在のプロジェクトの正しいルビーバージョンを確保するために、自分のプロジェクトのルートに常に.ruby-versionというファイルがあります。さらに一歩進んで.ruby-gemsetファイルを追加することもできます。

詳しい情報は、IDEにおけるSDKセットとは同期がありませんので、シェルルビーバージョンは(RVMのuse` `を介して)手動で変更することができるrvm docs

+0

にも書きたいと思っています。バンドルインストールを実行するために別のシェルを使用しましたが、2.2.4ではなく、デフォルトのルビを指していることに気づかずにありがとうございました! –