Прошу прощения, если этот вопрос немного субъективен ... Я пытаюсь выяснить, как лучше всего протестировать движки Rails 3 с помощью Cucumber & Rspec. Для тестирования двигателя необходимо приложение rails 3. Вот что я сейчас делаю:
Добавьте тестовое приложение rails в корень драгоценного камня (myengine), выполнив: rails new / myengine / rails_app
Добавьте огурец в / myengine / rails_app / features
, как и в обычном приложении Rails
Требовать гем Rails Engine (с использованием : path => "/ myengine"
) в / myengine / rails_app / Gemfile
Добавьте спецификацию в корневой каталог гема: / myengine / spec
Включите фикстуры в / myengine / spec / fixtures
, и я добавлю следующее в свой cuc env.rb:
env.rb:
Fixtures.reset_cache
fixtures_folder = File.join(Rails.root, 'spec', 'fixtures')
fixtures = Dir[File.join(fixtures_folder, '*.yml')].map {|f| File.basename(f, '.yml') }
Fixtures.create_fixtures(fixtures_folder, fixtures)
У вас видите какие-нибудь проблемы с настройкой вот так? Тесты проходят нормально, но я немного не решаюсь поместить эти функции в приложение test rails. Изначально я попытался поместить функции в корень драгоценного камня и создал приложение test rails внутри features / support
, но по какой-то причине мой движок не инициализировался, когда я запускал тесты, хотя я мог видеть приложение загружает все остальное при запуске cuc.
Если кто-то работает с Rails Engines и использует cuc и rspec для тестирования, мне было бы интересно услышать вашу настройку.
* * ОБНОВЛЕНИЕ
Я немного изменил свои настройки с тех пор, как написал этот вопрос. Я решил избавиться от каталога spec в корне движка. Теперь я просто создаю приложение rails с именем «test_app» и настраиваю cuc и rspec внутри этого приложения, как я обычно делал бы в приложении rails. Затем я добавляю драгоценный камень, как в шаге № 3 выше. Поскольку движок является вспомогательным приложением, я думаю, лучше всего протестировать его, как будто это обычное приложение для рельсов. Мне все еще интересно узнать, есть ли у кого-нибудь другие настройки.