2014-04-10 4 views
1

bundle exec rake cucumber을 사용하여 기능 파일을 실행하지만 오이 테스트가 완료된 후에도 내 테스트 데이터베이스가 유지되어야하므로 내 테스트 데이터베이스가 유지되어야합니다. 내 원격 테스트 데이터를 내 로컬 테스트 데이터베이스에 덤프하십시오.. 이 테스트 database..i이 cucumber.rake 들여다 노력하고 test:preparerake db : test : 오이 레일을 사용하는 동안 준비하십시오.

namespace :cucumber do 
    Cucumber::Rake::Task.new({:ok => 'test:prepare'}, 'Run features that should pass') do |t| 
     t.binary = vendored_cucumber_bin # If nil, the gem's binary is used. 
     t.fork = true # You may get faster startup if you set this to false 
     t.profile = 'default' 
     t.rcov = true 
    end 

난 후 내 테스트 데이터베이스의 삭제를 사용하지 않으려는 실행이 라인을 파악 정리하여 기본으로 나는 또한 데이터베이스 클리너를 제거 내 오이/rspec 테스트 completes.is 거기에 어떤 방법을 찾고 있기 때문에 노력했지만 좋은 source.moreover 내가 테스트 데이터베이스에 데이터를 덤핑 것입니다 .. 그래서 솔루션은 테스트 데이터베이스의 데이터에 관계없이 작동합니다.

내 gemfile

group :development, :test do 
    gem 'capybara' 
    gem 'annotate' 
    gem "factory_girl_rails", "~> 1.1.rc1" 
    gem "factory_girl_generator", ">= 0.0.3" 
    gem "rspec-rails", ">= 2.6.0" 
    gem 'rr' 
    gem 'ruby-debug' 
    gem 'haml-rails' 
    gem 'rcov' 
    ##removed database cleaner as i want to persist test data always 
    ##gem 'database_cleaner' 
    gem 'pry-rails' 
    ##cucumber,mysql added for test database ONLY 
    gem 'cucumber-rails', :require => false 
    gem 'mysql' 

cucumber.rake 잘

# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril. 
# It is recommended to regenerate this file in the future when you upgrade to a 
# newer version of cucumber-rails. Consider adding your own code to a new file 
# instead of editing this one. Cucumber will automatically load all features/**/*.rb 
# files. 


unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks 

vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first 
$LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil? 

begin 
    require 'cucumber/rake/task' 

    namespace :cucumber do 
    Cucumber::Rake::Task.new({:ok => 'test:prepare'}, 'Run features that should pass') do |t| 
     t.binary = vendored_cucumber_bin # If nil, the gem's binary is used. 
     t.fork = true # You may get faster startup if you set this to false 
     t.profile = 'default' 
     t.rcov = true ##added to get coverage using rcov 
    end 

    Cucumber::Rake::Task.new({:wip => 'test:prepare'}, 'Run features that are being worked on') do |t| 
     t.binary = vendored_cucumber_bin 
     t.fork = true # You may get faster startup if you set this to false 
     t.profile = 'wip' 
     t.rcov = true ##added to get coverage using rcov 
    end 

    Cucumber::Rake::Task.new({:rerun => 'test:prepare'}, 'Record failing features and run only them if any exist') do |t| 
     t.binary = vendored_cucumber_bin 
     t.fork = true # You may get faster startup if you set this to false 
     t.profile = 'rerun' 
     t.rcov = true ##added to get coverage using rcov 
    end 

    desc 'Run all features' 
    task :all => [:ok, :wip] 

    task :statsetup do 
     require 'rails/code_statistics' 
     ::STATS_DIRECTORIES << %w(Cucumber\ features features) if File.exist?('features') 
     ::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?('features') 
    end 
    end 
    desc 'Alias for cucumber:ok' 
    task :cucumber => 'cucumber:ok' 

    task :default => :cucumber 

    task :features => :cucumber do 
    STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***" 
    end 

    # In case we don't have the generic Rails test:prepare hook, append a no-op task that we can depend upon. 
    task 'test:prepare' do 
    end 

    task :stats => 'cucumber:statsetup' 
rescue LoadError 
    desc 'cucumber rake task not available (cucumber not installed)' 
    task :cucumber do 
    abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin' 
    end 
end 

end 

답변

2

내가 시험을 중지 할 수 없습니다 : DB를 : 준비하지만 난 할 수 있었다 테스트 데이터를 보존하십시오env.rb

Cucumber::Rails::World.use_transactional_fixtures = false 

에 거짓이 구성을 설정하여 오이/RSpec에 프로그램을 실행 한 후 -------는 다른뿐만 아니라 사람을 도움이되기를 바랍니다.