2013-08-05 10 views
5

Mam małą aplikację Rails 4.0.0/Ruby 2.0.0-p247, dla której chciałbym napisać kilka testów. Kiedy uruchamiamZadanie ogórka nie działa, obwinia parser JSON

rake cucumber:all 

pojawia się następujący błąd:

/Users/me/.rvm/rubies/ruby-2.0.0-p247/bin/ruby -S bundle exec cucumber --profile default 
/Users/me/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/json/common.rb:155:in `parse': uninitialized constant JSON::Parser (NameError) 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/multi_json-1.7.8/lib/multi_json/adapters/json_common.rb:16:in `load' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/multi_json-1.7.8/lib/multi_json/adapter.rb:19:in `load' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/multi_json-1.7.8/lib/multi_json.rb:118:in `load' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/gherkin-2.12.0/lib/gherkin/i18n.rb:14:in `<class:I18n>' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/gherkin-2.12.0/lib/gherkin/i18n.rb:6:in `<module:Gherkin>' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/gherkin-2.12.0/lib/gherkin/i18n.rb:5:in `<top (required)>' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/gherkin-2.12.0/lib/gherkin/lexer/i18n_lexer.rb:2:in `require' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/gherkin-2.12.0/lib/gherkin/lexer/i18n_lexer.rb:2:in `<top (required)>' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/gherkin-2.12.0/lib/gherkin.rb:1:in `require' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/gherkin-2.12.0/lib/gherkin.rb:1:in `<top (required)>' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/cucumber-1.3.5/lib/cucumber/cli/main.rb:2:in `require' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/cucumber-1.3.5/lib/cucumber/cli/main.rb:2:in `<top (required)>' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/cucumber-1.3.5/bin/cucumber:11:in `require' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/gems/cucumber-1.3.5/bin/cucumber:11:in `<top (required)>' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/bin/cucumber:23:in `load' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/bin/cucumber:23:in `<main>' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `eval' 
from /Users/me/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `<main>' 

Zabrakło mi wiązka, wiązka zainstalować aktualizację, oczyszczanie gem, etc., bezskutecznie. Ta sama aplikacja Railsowa działa dobrze na innej maszynie (Mac OS X 10.8.4), ale moja (Mac OS X 10.8.2) nie działa. Jakieś pomysły?

+0

jaka jest zawartość twojego Gemfile? –

Odpowiedz

4

mam dokładnie sam e błąd. Powodem jest tutaj:

https://github.com/intridea/multi_json/issues/131

Ponieważ mają poprawkę błędu, wszystko co musisz zrobić, to aktualizację multi_json do 1.7.9

--edited Proszę nie zmieniać Gemfile.lock sprawdzić komentarze dla szczegółów

+0

To wystarczy, ale proszę, nie aktualizuj ręcznie Gemfile.lock ręcznie. Zamiast tego uruchom '$ bundle update multi_json'. –

+0

Dobra uwaga, ponieważ, gdy zaktualizujesz klejnot za pomocą 'aktualizacji pakietu ', bundler zaktualizuje wszystkie zależności tego klejnotu, w tym te, które są również zależnościami innego klejnotu. Co się stanie, jeśli naprawiono problem z programem multi_json-1.7.9, program multi_json-1.7.10 ponownie ma ten błąd? – Race

+1

W takim przypadku możesz dodać 'gem 'multi_json', '1.7.9'' do swojego Gemfile'a i ponownie uruchomić' bundle update multi_json'. –

0

Wierzę, że źródłem problemu nie jest JSON :: Parser. Błąd "ruby_noexec_wrapper" może sugerować problem z RVM.

Spróbuj

which cucumber 

należy aliasem bundled_cucumber

także spróbować aktualizacji RVM

rvm get stable 

i/lub dokonywania świeżego gemset

rvm gemset empty 
Powiązane problemy