Как протестировать JavaScript без удаления данных из базы данных `test`?

.1 и капибара-1.1.2. Я хотел бы использовать Seleniumдля тестирования JavaScript, но без удаления данных базы данных testкаждый раз, когда я запускаю командную строку огурецв окне терминала. . То есть, если я заявлю о характеристике, подобной следующей:

Feature: ...

  @javascript
  Scenario: ...

JavaScript протестирован так, как и ожидалось. Однако после запуска теста данные базы данных testудаляются, и я должен снова заполнить эту базу данных, чтобы правильно запустить новые тесты.

Я прочитал Официальную документациюи текст, присутствующий в файле ROOT_APP/features/support/env.rb(кажется, что я установил все необходимые драгоценные камни Ruby — см. ниже для больше информации о Gemfile, который я использую), но я не понял, как избежать удаления данных базы данных и как настроить гемы Cucumber и Capybara, чтобы правильно работать с Selenium.

Что мне делать?

Примечание I: я хотел бы сделать это, потому что я хотел бы иметь те же тестовыеданные базы данных, когда я "тестирую"/"запускаю" сценарии.

Примечание II: чтобы заполнить данные в базе данных test(эти данные нужны моему приложению для работы), я добавляю следующий код в RAILS_ROOT_PATH/lib/tasks/ огурец.rakeи запускаю командную строку rake db:test:prepareиз окна терминала.

namespace :db do
  namespace :test do
    task :prepare => :environment do
      Rake::Task["db:seed"].invoke
    end
  end
end

В файле ROOT_APP/features/support/env.rbя попытался раскомментировать один и оба следующих блока кода ( BTW: я никогда не менял исходный файл auto -генерируется гемом Cucumber-Rails, поэтому он используется по умолчанию), но после запуска тестов он по-прежнему удаляет данные базы данных test.

#   Before('@no-txn,@selenium,@culerity,@celerity,@javascript') do
#     # { :except => [:widgets] } may not do what you expect here
#     # as tCucumber::Rails::Database.javascript_strategy overrides
#     # this setting.
#     DatabaseCleaner.strategy = :truncation
#   end
#
#   Before('~@no-txn', '~@selenium', '~@culerity', '~@celerity', '~@javascript') do
#     DatabaseCleaner.strategy = :transaction
#   end

Выдержка из Gemfile:

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

group :test do
  gem 'cucumber-rails'
  gem 'database_cleaner'
  gem 'capybara'
end

5
задан Backo 19 March 2012 в 00:16
поделиться