Тесты выполняются на моем компьютере с Ubuntu, но не на моем Mac OS X Lion 10.7.3, Ruby 1.9.3, Rails 3.2.1 - PullRequest
1 голос
/ 20 марта 2012

У меня есть проект в Dropbox и два работающих ноутбука: один с Ubuntu и один с Mac OS X Lion 10.7.3. Когда я пытаюсь запустить rspec или cucumber на ubuntu, они работают хорошо, но когда я пытаюсь запустить тесты на Mac, у меня возникают те же ошибки в config / application.rb: 13: Bundler.require(*Rails.groups(:assets => %w(development test)))

Для огурцов:

Using the default profile...
undefined method `gsub' for nil:NilClass (NoMethodError)
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.1/lib/bundler/runtime.rb:77:in `rescue in rescue in block in require'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.1/lib/bundler/runtime.rb:72:in `rescue in block in require'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.1/lib/bundler/runtime.rb:62:in `block in require'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.1/lib/bundler/runtime.rb:55:in `each'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.1/lib/bundler/runtime.rb:55:in `require'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.1/lib/bundler.rb:119:in `require'
/Users/sergey/Dropbox/rails_projects/payforapps/config/application.rb:13:in `<top (required)>'
/Users/sergey/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/Users/sergey/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/Users/sergey/Dropbox/rails_projects/payforapps/config/environment.rb:2:in `<top (required)>'
/Users/sergey/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/Users/sergey/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/Users/sergey/Dropbox/rails_projects/payforapps/features/support/env.rb:11:in `block in <top (required)>'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/spork-0.9.0/lib/spork.rb:24:in `prefork'
/Users/sergey/Dropbox/rails_projects/payforapps/features/support/env.rb:6:in `<top (required)>'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/cucumber-1.1.9/lib/cucumber/rb_support/rb_language.rb:129:in `load'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/cucumber-1.1.9/lib/cucumber/rb_support/rb_language.rb:129:in `load_code_file'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:171:in `load_file'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:83:in `block in load_files!'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:82:in `each'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:82:in `load_files!'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/cucumber-1.1.9/lib/cucumber/runtime.rb:175:in `load_step_definitions'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/cucumber-1.1.9/lib/cucumber/runtime.rb:40:in `run!'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/cucumber-1.1.9/lib/cucumber/cli/main.rb:43:in `execute!'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/cucumber-1.1.9/lib/cucumber/cli/main.rb:20:in `execute'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/cucumber-1.1.9/bin/cucumber:14:in `<top (required)>'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/bin/cucumber:19:in `load'
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/bin/cucumber:19:in `<main>'

Для rspec:

No DRb server is running. Running in local process instead ...
/Users/sergey/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.1/lib/bundler/runtime.rb:77:in `rescue in rescue in block in require': undefined method `gsub' for nil:NilClass (NoMethodError)
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.1/lib/bundler/runtime.rb:72:in `rescue in block in require'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.1/lib/bundler/runtime.rb:62:in `block in require'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.1/lib/bundler/runtime.rb:55:in `each'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.1/lib/bundler/runtime.rb:55:in `require'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.1/lib/bundler.rb:119:in `require'
        from /Users/sergey/Dropbox/rails_projects/payforapps/config/application.rb:13:in `<top (required)>'
        from /Users/sergey/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/sergey/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/sergey/Dropbox/rails_projects/payforapps/config/environment.rb:2:in `<top (required)>'
        from /Users/sergey/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/sergey/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/sergey/Dropbox/rails_projects/payforapps/spec/spec_helper.rb:10:in `block in <top (required)>'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/spork-0.9.0/lib/spork.rb:24:in `prefork'
        from /Users/sergey/Dropbox/rails_projects/payforapps/spec/spec_helper.rb:4:in `<top (required)>'
        from /Users/sergey/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/sergey/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/sergey/Dropbox/rails_projects/payforapps/spec/controllers/static_pages_controller_spec.rb:1:in `<top (required)>'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `load'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `block in load_spec_files'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `map'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `load_spec_files'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:22:in `run'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:66:in `rescue in run'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:62:in `run'
        from /Users/sergey/.rvm/gems/ruby-1.9.3-p125@payforapps321/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `block in autorun'

Как я могу это исправить? Любая помощь приветствуется. Спасибо.

Ответы [ 2 ]

4 голосов
/ 24 марта 2012

Проблема была в двух драгоценных камнях в моем Gemfile :

gem 'rb-inotify', '0.8.8'
gem 'libnotify', '0.5.9'

Эти камни совместимы только с Ubuntu, насколько я понимаю.

UPD:

Вы должны привязывать драгоценные камни к группам.Добавьте все специфические для OS X гемы в группу darwin в Gemfile и все специфические для Linux гемы в linux группу:

# Gemfile
group :darwin do
  gem 'rb-fsevent'
  gem 'growl'
end

group :linux do
  gem 'rb-inotify'
end

Чтобы требовать соответствующие драгоценные камни в нужной среде, добавьте следующее в config / application.rb :

platform = RUBY_PLATFORM.match(/(linux|darwin)/)[0].to_sym
Bundler.require(platform)

См. https://github.com/bbatsov/rails-style-guide#bundler дляподробнее о пакете здесь.

0 голосов
/ 28 августа 2013

Возникла проблема с моим драгоценным камнем.

обновление пакета

Прочтите ошибку правильно, она скажет вам, какой камень является виновником.

Дело в том, что не все гемы совместимы с ОС.

...