2013-08-05 10 views
5

Ho una piccola app Rails 4.0.0/Ruby 2.0.0-p247 per la quale mi piacerebbe scrivere alcuni test. Quando eseguoL'attività di cetriolo fallisce, incolpa parser JSON

rake cucumber:all 

ottengo il seguente errore: bundle install

/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>' 

ho eseguito, aggiornamento fascio, gemma di pulizia, ecc, senza alcun risultato. Questa stessa app Rails funziona bene su una macchina diversa (Mac OS X 10.8.4), ma la mia (Mac OS X 10.8.2) non funziona. Qualche idea?

+0

Quali sono i contenuti del tuo Gemfile? –

risposta

4

Ho esattamente il sam e errore. Il motivo è qui:

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

Dal momento che hanno una correzione di bug, Tutto quello che dovete fare è aggiornare multi_json a 1.7.9

--edited Si prega di non modificare Gemfile.lock, verificare i commenti per i dettagli

+0

Questo lo farà, ma per favore non aggiornare mai il tuo Gemfile.lock a mano. Esegui invece '$ bundle update multi_json'. –

+0

Buon punto, dato che quando si aggiorna una gemma usando 'bundle update', bundler aggiornerà tutte le dipendenze di quella gemma, comprese quelle che sono anche dipendenze da un'altra gemma. Cosa succede se, multi_json-1.7.9 risolve il problema, multi_json-1.7.10 ha di nuovo quell'errore? – Race

+1

In questo caso aggiungere 'gem 'multi_json', '1.7.9'' al proprio Gemfile ed eseguire di nuovo' bundle update multi_json'. –

0

Credo che l'origine del problema non provenga da JSON :: Parser. L'errore "ruby_noexec_wrapper" potrebbe suggerire un problema RVM.

Prova

which cucumber 

dovrebbe essere alias per bundled_cucumber

anche provare ad aggiornare RVM

rvm get stable 

e/o fare un GemSET fresca

rvm gemset empty