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