2017-05-10 43 views
7

Zwykle używam mojej specyfikacji od wewnątrz IntelliJ. Usunąłem moje klejnoty i ponownie je zainstalowałem, korzystając z pakietu instalacyjnego (z powodu innego błędu), a teraz otrzymuję komunikat o błędzie podczas próby uruchomienia specyfikacji.Runnin rspec z IntelliJ

Zauważyłem, że działa widowisko z IntelliJ używa:

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' 

który nie jest przypadek, gdy uruchomiony z powłoki (I umieszczony odcisk wewnątrz skryptu kernel_require to sprawdzić).

Również mam zobaczyć, że wersja Ruby z IntelliJ jest:

"ruby 2.2.4: 230" 

iz powłoki:

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

Błąd:

/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 

Jeśli próbuję uruchomić specyfikacje z powłoki będą działać, bez błędów, więc domyślam się, że problem jest związany z konfiguracją uruchomienia, ale nie wiem co.

Konfiguracja run który pracował do tej pory:

enter image description here

Próbowałem zdjąć Nokogiri gem i zainstalować go ponownie, ale nadal to samo.

Wszelkie pomysły?

struktura projektu: enter image description here

+0

Skorupa wersji ruby ​​można zmienić ręcznie (za pomocą 'RVM use'), ponieważ nie ma synchronizacji z zestawem SDK w IDE. Ponadto możesz dołączyć zrzuty ekranu z pliku | Struktura projektu | moduł, o którym mowa. – Olivia

+0

wykonując użycie rvm dostaję: Używając /home/user/.rvm/gems/ruby-2.2.4, jak to pomaga? nie powinienem dołączać SDK do struktury projektu? dlaczego moduł jest odpowiedni? –

+0

'rvm use' + niezbędna wersja ruby ​​zmieni zestaw SDK w powłoce. Pytałem o moduły, ponieważ do tego samego projektu można dodać kilka modułów (różnych typów), a każdy z nich może mieć skonfigurowany własny zestaw SDK. – Olivia

Odpowiedz

4

Jesteś wskazując, że jesteś w Ruby 2.2.6 przy użyciu konsoli. IntelliJ narzeka na brak klejnotu nokogiri.

Mogę sobie wyobrazić, że prawdopodobnie twój ostatni bundle install nie użył ruby ​​2.2.4 (jak używa IntelliJ), ale Ruby 2.2.6 do zainstalowania klejnotów.

polecam następujące kroki, aby ograniczyć to w dół:

  • sprawdzić i upewnić się, że używasz Ruby 2.2.4 na powłoce
  • prowadzony bundle install aby wszystkie kamienie (to bardzo ważne!) z projektu są instalowane dla Ruby 2.2.4
  • uruchomić swoje widowisko w powłoce

Jeśli się powiedzie, a następnie spróbuj uruchomić widowisko z IntelliJ. Powinno to zadziałać w przypadku, gdyby kroki opisane powyżej przebiegły poprawnie.

Osobista uwaga (nie wiem, czy to już jest): W moich projektach zawsze mam plik .ruby-version w katalogu głównym mojego projektu, aby zapewnić poprawną wersję ruby ​​dla bieżącego projektu. Możesz nawet pójść o krok dalej i dodać plik .ruby-gemset.

Więcej informacji można znaleźć w rvm docs

+0

Tak, użyłem innej powłoki do uruchomienia instalacji pakietu, nie zauważając, że wskazuje ona na domyślny ruby, a nie 2.2.4, dziękuję! –