Guard + Spork on Rails 4 com RSpec e Cucumber

Guarda com Spork para RSpec, Pepino e Teste :: Unidade

Pode ser um pouco chato se você quiser usar guarda e garfo, especialmente pela primeira vez. Existem muitas joias diferentes disponíveis e nem todas funcionam com todas as configurações.

Nós usamos isso e funciona sem problemas para nós. Se você usa o Mongoid, consulte as instruções extras no final.

por JanDintel e JobV

Joias

group :development, :test do
gem
'guard-rspec'
gem
'guard-livereload'
gem
'spork-rails', github: 'sporkrb/spork-rails' # rubygems version not rails 4 compatible
gem
'guard-spork'
gem
'childprocess'
end

group
:test do
gem
'rspec-rails'
gem
'selenium-webdriver', '2.0.0'
gem
'capybara', '2.1.0'
gem
'factory_girl_rails'
gem
'cucumber', '1.2.5' # Spork not supported as of Cucumber 1.3.0, need to use 1.2.5
gem
'cucumber-rails', :require => false
gem
'database_cleaner'
end

Instruções de instalação

$ bundle update
$ bundle install

$ rails generate rspec
:install
$ guard init rspec

Modificar ./Guardfile

guard 'rspec', after_all_pass: false, cli: '--drb' do
...

Configurar spork

$ bundle spork --bootstrap

Configure o Spork em /spec/spec_helper.rb

Spork.prefork do
ENV
["RAILS_ENV"] ||= 'test'
require
File.expand_path("../../config/environment", __FILE__)
require
'rspec/rails'
require
'rspec/autorun'
end

Configuração de proteção com spork

$ guard init spork

Instale Pepino

$ rails generate cucumber:install --spork

Mongóide

Para uso com mongoid, modifique /spec/spec_helper.rb.
Remova essas linhas:

ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
..
config
.fixture_path = "#{::Rails.root}/spec/fixtures"
..
config
.use_transactional_fixtures = true

E adicione a /spec/spec_helper.rb, abaixo de Rspec.configure

config.before(:suite) do
DatabaseCleaner[:mongoid].strategy = :truncation
end

config
.before(:each) do
DatabaseCleaner[:mongoid].start
end

config
.after(:each) do
DatabaseCleaner[:mongoid].clean
end