spork 0.9.2 и rspec 3.0.0 = неинициализированная константа RSpec:: Core:: CommandLine (NameError)
Im с помощью spork 0.9.2 и rspec 3.0.0. При попытке запустить test rspec --drb
У меня есть исключение
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/spork-0.9.2/lib/spork/test_framework/rspec.rb:11:in run_tests: uninitialized constant RSpec::Core::CommandLine (NameError)
но при изменении версии rspec обратно на 2.6-все в порядке. Кто-нибудь сталкивался с той же проблемой? Можно ли это обойти?
5 ответов
причина в том, что Rspec::Core:: CommandLine был удален в Rspec3
https://github.com/rspec/rspec-core/blob/master/Changelog.md
объединить Rspec::Core::CommandLine (никогда официально не объявляется общедоступным) в RSpec::Core:: Runner. (Майрон Марстон)
но spork зависит от этого кода.
на GitHub spork уже есть проблема, и решение можно найти в следующем spork вилка:
В общем - заменить
::RSpec::Core::CommandLine.new(argv).run(stderr, stdout)
С
::RSpec::Core::Runner.run(argv,stderr, stdout)
в исходном коде soprks
Как @lx00st сказал:
причина в том, что Rspec::Core:: CommandLine был удален в Rspec3
драгоценный камень спорк не был обновлен в rubygems.org - ... Тем не менее, исправление было объединено в главную ветвь spork на github. Вы можете захватить его, сказав bundler, что вы хотели бы получить spork от GitHub (master) вместо rubygems.org - ... Так сделайте это:
это было исправлено на главной ветви spork. Простой решение:
gem 'spork', github: 'sporkrb/spork', branch: 'master'
Если вы используете spork-rails, просто требуйте spork через github, прежде чем требовать spork-rails в вашем gemfile. Для получения дополнительной информации об этом см. Мой комментарий здесь:
https://github.com/sporkrb/spork-rails/issues/26
Edit: добавлено branch: 'master'
то же самое и здесь. Просто удалите строку "--drb".spec-файл и удалите на guard :rspec...
строка в Guardfile. Это не отталкивает ложку. Он просто выключает опцию" distributed ruby " (--drb) Rspec. Поскольку guard знает, что вы используете Rspec через Spork, это не нужно.
Я начал использовать Spring вместо Spork, и это решило его.
кажется, это новый путь рельсов: http://edgeguides.rubyonrails.org/4_1_release_notes.html#spring-application-preloader
У меня была такая же проблема. Без копания в исходный код rspec3, удаление строки --drb из моего .файл rspec исправил проблему для меня. Некоторые примеры Guardfile также используют --drb, который вызывает проблемы для меня. После удаления все тесты работают нормально.