2013-08-05 17 views
5

Tôi có một ứng dụng Rails 4.0.0/Ruby 2.0.0-p247 nhỏ mà tôi muốn viết một số thử nghiệm. Khi tôi chạyTác vụ cào dưa chuột không thành công, đổ lỗi cho trình phân tích cú pháp JSON

rake cucumber:all 

tôi nhận được lỗi sau:

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

tôi đã chạy bó cài đặt, cập nhật bó, đá quý dọn dẹp, vv, để không có kết quả. Ứng dụng Rails tương tự này chạy tốt trên một máy khác (Mac OS X 10.8.4), nhưng của tôi (Mac OS X 10.8.2) không hoạt động. Bất kỳ ý tưởng?

+0

nội dung của Gemfile của bạn là gì? –

Trả lời

4

tôi có chính xác sam lỗi e. Lý do là ở đây:

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

Vì họ có một bản vá lỗi, tất cả các bạn cần làm là cập nhật multi_json để 1.7.9

--edited Xin đừng KHÔNG thay đổi Gemfile.lock, kiểm tra ý kiến để biết chi tiết

+0

Điều này sẽ làm điều đó, nhưng xin vui lòng không bao giờ cập nhật Gemfile.lock của bạn bằng tay. Thay vào đó chạy '$ bundle update multi_json'. –

+0

Điểm tốt, Vì, khi bạn cập nhật một gem bằng cách sử dụng 'bundle update', bundler sẽ cập nhật tất cả các phụ thuộc của gem đó, bao gồm cả những phụ thuộc của gem khác. Điều gì sẽ xảy ra nếu multi_json-1.7.9 khắc phục sự cố, multi_json-1.7.10 có lỗi đó một lần nữa? – Race

+1

Trong trường hợp đó, bạn sẽ thêm 'gem 'multi_json', '1.7.9'' vào Gemfile và chạy' bundle update multi_json' lần nữa. –

0

Tôi tin rằng nguồn của vấn đề không phải từ JSON :: Parser. Lỗi 'ruby_noexec_wrapper' có thể đề xuất một vấn đề RVM.

Hãy thử

which cucumber 

nó nên được aliased để bundled_cucumber

Cũng cố gắng cập nhật RVM

rvm get stable 

và/hoặc thực hiện một gemset tươi

rvm gemset empty 
Các vấn đề liên quan