2015-06-29 4 views
0

У меня есть два стиля спецификации в одной папке, одна из которых использует полномасштабированную среду рельсов, с rspec, другая - легкий помощник, который требует драгоценных камней индивидуально.RSpec, Mocha и Rubymine - Неопределенный метод `mocha_setup '

Недавно у меня были проблемы с этим в Rubymine.

Щелчок правой кнопкой мыши по одному файлу любого стиля выполняется нормально. Щелчок правой кнопкой мыши папку и выберите «Run> Все данные в папке» было возвращать ошибку для каждой спецификации:

NameError: undefined local variable or method `mocha_setup' for #<RSpec::Core::ExampleGroup::Nested_1:0x0000000ca26d70> 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-expectations-2.14.5/lib/rspec/matchers/method_missing.rb:9:in `method_missing' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/mocking/with_mocha.rb:40:in `setup_mocks_for_rspec' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/example.rb:299:in `run_before_each' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/example.rb:113:in `block in run' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/example.rb:254:in `with_around_each_hooks' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/example.rb:111:in `run' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/example_group.rb:390:in `block in run_examples' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/example_group.rb:386:in `map' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/example_group.rb:386:in `run_examples' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/example_group.rb:371:in `run' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/command_line.rb:28:in `map' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/command_line.rb:28:in `block in run' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/reporter.rb:58:in `report' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/command_line.rb:25:in `run' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/runner.rb:80:in `run' 
/home/ajfaraday/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.14.5/lib/rspec/core/runner.rb:17:in `block in autorun' 

Это было работать вместе отлично до самого последнего времени.

я могу запустить все спецификации из командной строки без каких-либо проблем:

rspec --pattern spec/models/auto_ordering/*_spec.rb 

Это, кажется, что-то конкретное о запуске этой папки в RubyMine. Я попытался сделать недействительными мои кэши и перезапустить среду IDE. Я попытался удалить конфигурацию для запуска этой папки.

Кто-нибудь знает, что может быть причиной этого?

Обновление: С тех пор я обнаружил, что это случается спорадически при вызове через командную строку.

+0

Какую версию RubyMine вы используете? Вы запустили ту же команду из терминала, используя тот же SDK, что и в проекте? – Olivia

+0

Я использую Rubymine 7.1.2. Да, у меня есть тот же SDK в командной строке, что и в Rubymine. – AJFaraday

ответ

0

В конце концов я решил эту проблему:

  • Это не было ничего общего с RubyMine, это был вопрос порядка загрузки.
  • Rubymine работал с файлами в строгом алфавитном порядке, CLI запускал их в произвольном порядке
  • Когда среда с полным рельсом загружалась первой, она работала нормально.
  • Когда моя постная среда загружала первую, он пропускал этот кусок конфиги:
 
RSpec.configure do |config| 
    config.mock_framework = :mocha 
end 

Я добавил это мой облегченной помощнику спецификации и теперь я могу запустить эти файлы в любом порядке.