Ошибка запуска автотеста в Windows 7 с Rails 3, Ruby 1.9.2 - PullRequest
2 голосов
/ 27 октября 2010

Установка и запуск 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 ]

3 голосов
/ 27 октября 2010

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

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

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

0 голосов
/ 27 октября 2010

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

...