Я немного погуглил, и согласно этой теме на форуме rspec ruby и эта закрытая проблема rspec-rails , это проблема с rspec-rails, которая была неподвижная.
Я использую Ruby 1.9.2p136 в Windows 7 с использованием rails 3.0.3.
Вот так выглядел мой Gemfile, который показывает версии rspec и rspec-rails, которые я использовал:
source 'http://rubygems.org'
gem 'rails', '3.0.3'
gem 'sqlite3-ruby', :require => 'sqlite3'
group :development do
gem 'rspec-rails', '2.4.1'
end
group :test do
gem 'rspec', '2.4.0'
gem 'webrat', '0.7.1'
end
Я говорю «похоже», потому что когда я пытался запустить генератор рельсов rspec, я получил следующее:
C:\Ruby\sample_app>rails generate rspec:install
create .rspec
create spec
create spec/spec_helper.rb
Could not find "autotest" in any of your source paths. Your current source paths
are:
C:/Ruby/sample_app/lib/templates/rspec/install
C:/Ruby/192-stackoverflow/lib/ruby/gems/1.9.1/gems/rspec-rails-2.3.0/lib/generators/rspec/install/templates
Итак, я добавил автотест в свой Gemfile (и снова установил пакет), затем попытался rails generate rspec: установить снова, и он работал без ошибок. Вот как теперь выглядит мой Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.0.3'
gem 'sqlite3-ruby', :require => 'sqlite3'
group :development do
gem 'autotest'
gem 'rspec-rails', '2.4.1'
end
group :test do
gem 'rspec', '2.4.0'
gem 'webrat', '0.7.1'
end
И эта версия автотеста, которую он устанавливает, - 4.4.6:
C:\Ruby\sample_app>bundle show autotest
C:/Ruby/192-stackoverflow/lib/ruby/gems/1.9.1/gems/autotest-4.4.6
Затем я создал контроллер, как указано в руководстве:
$ rails generate controller Pages home contact
И я смог запустить и "bundle exec autotest", и "rspec spec /", не получив сообщение об ошибке:
C:\Ruby\sample_app>bundle exec autotest
loading autotest/rspec2
bundle exec C:\Ruby\192-stackoverflow\bin\ruby -S C:/Ruby/192-stackoverflow/lib/ruby/gems/1.9.1/gems/rspec-core-2.4.0/bin/rspec --tty 'C:/Ruby/sample_app/spec/controllers/pages_controller_spec.rb'
..
Finished in 23.04 seconds
2 examples, 0 failures
# I killed autotest with CTRL-c at this point
Interrupt a second time to quit
Terminate batch job (Y/N)? y
Terminate batch job (Y/N)? y
C:\Ruby\sample_app>rspec spec/
..
Finished in 23.11 seconds
2 examples, 0 failures
Я также продолжил учебник по написанию спецификаций для страницы «О программе», пока проводился автотест, и он выполнял мои изменения без проблем.
Пожалуйста, попробуйте:
- Обновление вашего Gemspec, чтобы оно выглядело как мой второй, опубликованный здесь
- Запуск комплекта установки
- Запуск 'bundle exec autotest'
и дайте мне знать, если это работает. Я буду проверять обратно!