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
с помощью команды генератора тестового интегратора?
Ответы
Ответ 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