Ruby on Rails: переключение с тестового блока на rspec

я прохожу через учебник, который предложил использовать rspec, но я уже прошел через много установки rails по умолчанию. Я действительно не хочу переделывать установку вообще. Во всяком случае, когда я бегу

$ rails g integration_test named

Я

  invoke  test_unit
  create    test/integration/named_test.rb

когда я запускаю bundle, различные rspec драгоценные камни перечислены, но test_unit нет. В учебнике, похоже, есть rails invoke rspec вместо test_unit не делая ничего дополнительного. Как получить rails для использования rspec С помощью команды integration test generator?

9 ответов


в своем :

config.generators do |g|
  g.test_framework :rspec
end

Теперь, когда вы запускаете генераторы, вы получаете тестовые файлы rspec. Не забудьте перезагрузить сервер. Для получения дополнительной информации о генераторах см.:

RailsCasts #216 генераторы в рельсах 3

Если вы действительно хотите использовать генератор integration_test:

rails g integration_test named --integration-tool=rspec

работает с рельсы 3.2.8 и rspec-rails 2.11.4, я обнаружил, что моя проблема была в моем файле. У меня было rspec-rails на :test группа :development группы. Поскольку Rails по умолчанию работает в режиме разработки (в том числе при запуске generate), rspec-rails в своем :development группа для его подключения к генераторам. Как только я это сделал, все сработало.


начиная с Rails 3.2.12, выполните следующие действия в порядке

rails new app_name --skip-test-unit

добавить rspec-rails в Gemfile в разработке, тестовая группа

group :development, :test do
  gem 'rspec-rails'
end

Run bundle install

запустить генератор

rails generate rspec:install

... и очистите существующий тестовый каталог:

rm -Rf $RAILS_ROOT/test    

чтобы использовать RSpec вместо теста по умолчанию:: Unit, сначала выполните следующую команду

$ rails generate rspec:install

эта команда создаст следующую папку / файлы

create  .rspec
create  spec
create  spec/spec_helper.rb

теперь всякий раз, когда вы использовали генератор для генерации компонентов рельсов, таких как контроллер, модель и т. д., он создаст соответствующие RSpecs.


столкнулся с этой проблемой сегодня. приложение.РБ должен быть обновлен с:

config.generators do |g|
  g.test_framework :rspec
  g.integration_tool :rspec
end

1. при создании нового приложения rails пропустите testunit framework или создайте каталог test_unit.

$rails new your_app --skip-test-unit

2. добавьте код ниже в your_app/config / application.файл rb:

config.generators do |g| g.test_framework :rspec end

3. добавьте ниже код в Gemfile your_app:

group :test, :development do gem 'rspec-rails' end сохраните его и запустите bundle install для установки RSpec gem

4. Инициализируйте spec / directory

rails generate rspec:install


Я обнаружил, что я сделал, что некоторые из других методов все еще работают, чтобы проверить мое правописание....У меня было то, что @tovodeverett группировал RSpec-rails с: development и: test, но неправильно написал разработку. Это исправило мою проблему, но я создавал тесты с test_unit вместо rspec.


в config/application добавьте этот код

 config.generators do |g|
       g.test_framework  :rspec
       g.integration_tool :rspec
 end

$ rails g model Account
      invoke  active_record
      create    db/migrate/20140205052617_create_accounts.rb
      create    app/models/account.rb
      invoke    test_unit
      create      test/models/account_test.rb
      create      test/fixtures/accounts.yml
$ rails d model Account

под управлением скрипт / рельсы генерируют rspec: install не добавляет rspec в качестве платформы по умолчанию. Добавлена команда ниже в config / application.rb, а затем он работает

config.generators do |g|
  g.test_framework :rspec
end
$ rails g model Account
      invoke  active_record
      create    db/migrate/20140205052957_create_accounts.rb
      create    app/models/account.rb
      invoke    rspec
      create      spec/models/account_spec.rb
$ rails -v
Rails 4.0.2