Ошибка запуска автотеста в Windows 7 с Rails 3, Ruby 1.9.2

Установка и запуск Rails 3 и Ruby 1.9.2 в Windows 7 прошли довольно гладко. Только теперь, когда я хочу запустить автотест, у меня возникают проблемы. Ошибка выглядит разочаровывающе простой, но я не могу понять, как ее решить.

У меня есть следующие драгоценные камни в моем Gemfile:

gem 'autotest'
gem 'autotest-rails-pure'

Но потом, когда я бегу bundle exec autotest, Я получил:

loading autotest/rails
style: Rails
C:\bin\Ruby192\bin\ruby -I.;lib;test -rubygems -e "['test/unit', 
'test/unit/helpers/users_helper_test.rb', 'test/unit/user_test.rb'].each 
{ |f| require f }" | C:/bin/Ruby192/lib/ruby/gems/1.9.1/gems/autotest-4.4.1/bin/unit_diff -u
'C:' is not recognized as an internal or external command, 
operable program or batch file.

Так что, похоже, что-то идет не так при форматировании некоторого пути, но я не уверен, где и как это решить. Я пытался запустить это под Cygwin, но безрезультатно.

Я также пытался использовать ZenTest драгоценный камень вместо autotest а также autotest-rails-pure драгоценные камни и побежали! Однако он не обнаружил никаких тестовых файлов в каталогах по умолчанию. Так что, похоже, это тоже не очень полезно.

Кто может помочь?

2 ответа

Решение

О да! Я нашел решение! Драгоценные камни, которые мне нужны в этой настройке:

gem 'ZenTest'
gem 'autotest-rails-pure'

ZenTest gem генерирует правильную строку командной строки (которая на самом деле просто имеет "unit_diff -u" за каналом, без пути). autotest-rails-pure gem находит правильный набор тестов.

Я думаю, что это связано с тем, как командная оболочка Windows интерпретирует имена путей. Обычно вы можете заменить "/" на "\", и это все еще работает, но, очевидно, не тогда, когда вы также используете каналы. Бьюсь об заклад, если вы можете поставить кавычки вокруг неудачной команды (начиная с C:/bin/Ruby192/...), Windows распознает ее как строку.

Другие вопросы по тегам