Проблемы с Guard, Spork, Rspec & Rails 3 - PullRequest
25 голосов
/ 18 ноября 2011

Я следил за видео spork railscast , и при попытке запустить сторож я получаю следующую ошибку:

Guard is now watching at '/Users/m/work/'
Starting Spork for Test::Unit & RSpec 
Couldn't find a supported test framework that begins with 'testunit'

Supported test frameworks:
( ) Cucumber
(*) RSpec

Legend: ( ) - not detected in project   (*) - detected
Using RSpec
Preloading Rails environment
Loading Spork.prefork block...
Spork is ready and listening on 8989!
--> ERROR: Could not start Spork server for Test::Unit & RSpec. Make sure you can use it manually first.
Guard::RSpec is running, with RSpec 2!
Running all specs

Похоже, сервер Spork запускается нормально, а затем выдает ошибки и пытается продолжить работу. Я попытался сделать опцию: wait 120 секунд, и она все еще имеет ту же проблему.

Spork работает нормально, если я выполняю тесты без охраны и охраны-spork

Окружающая среда:

  • Mac OSX
  • рельсы (3.1.1)
  • охранник (0,8,8)
  • guard-rspec (0.5.4)
  • spork (0.9.0.rc9)
  • сторож-спорк (0.3.1)

Как мне отладить эту проблему? Понятия не имею, с чего начать.

Ответы [ 2 ]

76 голосов
/ 26 ноября 2011

У меня была именно эта проблема в Ubuntu. Мое решение было достаточно простым:

1) Я остановил охрану

2) Я удалил тестовую папку

3) Стражник

На этот раз вместо просмотра Starting Spork для Test :: Unit & RSpec я получил Starting Spork для RSpec. Таким образом, spork автоматически распознал, что моя тестовая папка больше не нужна, и все работает хорошо.

Довольно интересно, что

Supported test frameworks:
( ) Cucumber
(*) RSpec
Сообщение

также исчезло, и я получил точно ожидаемые результаты в соответствии с Railscast.

Единственные выводы, которые я могу сделать:

1) Это не зависит от ОС.

2) spork, rspec и тестовый модуль плохо работают в приложениях Rails> v3.x, что имеет смысл. Вам не нужны оба. ОБНОВЛЕНИЕ - Пожалуйста, смотрите обновленный ответ ниже, если вы хотите оба.

Очевидно, я очень внимательно следовал инструкциям Railscast, но серьезно советую вам посмотреть на удаление тестовой папки.

UPDATE Следует отметить, что можно заставить обоих хорошо играть вместе, как указано в комментарии ниже @yuvilio, цитата которого следующая:

Не думаю, что проблема в том, что они не ладят. Я получил Cucumber / Rspec / testunit, чтобы хорошо играть друг с другом в spork. В моем gemfile, в дополнение к драгоценным камням, связанным с rspec / cucumber / guard, я добавил spork-testunit, guard-test, ruby-prof и выполнил установку bundle. Затем я загрузил testunit: bundle exec spork testunit --bootstrap. Затем настроил test / test_helper.rb. Затем обновил файл защиты, наблюдая за testunit: комплектация exec guard init test. Когда я запустил защиту, я получил вывод, включая Spork-сервер для RSpec, Cucumber, Test :: Unit, успешно запущенный

17 голосов
/ 13 декабря 2012

Если вы не хотите удалять тестовую папку, вы можете просто попросить guard игнорировать ее:

guard 'spork', test_unit: false do
  # ...
end
...