Подтвердить что ты не робот

Ruby on Rails: переключение с test_unit на rspec

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

$ rails g integration_test named

Я получаю

  invoke  test_unit
  create    test/integration/named_test.rb

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

4b9b3361

Ответ 1

В вашем файле config/application.rb:

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

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

RailsCasts # 216 Генераторы в Rails 3

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

rails g integration_test named --integration-tool=rspec

Ответ 2

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

Ответ 3

По Rails 3.2.12 выполните следующие действия:

rails new app_name --skip-test-unit

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

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

Выполнить bundle install

Запустите генератор

rails generate rspec:install

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

rm -Rf $RAILS_ROOT/test    

Ответ 4

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

$ rails generate rspec:install

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

create  .rspec
create  spec
create  spec/spec_helper.rb

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

Ответ 5

Прошел этот вопрос сегодня. application.rb должен быть обновлен:

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

Ответ 6

1. при создании нового приложения rails, пропустите рамку TestUnit или создайте каталог 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:

group :test, :development do gem 'rspec-rails' end сохраните его и запустите bundle install, чтобы установить rspec gem

4. Инициализировать каталог spec/

rails generate rspec:install

более подробную информацию см. ниже: https://github.com/rspec/rspec-rails

Ответ 7

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

Ответ 8

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

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

Ответ 9

$ 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

Запуск script/rails generate 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