Skip to content

Instantly share code, notes, and snippets.

@diabolo
Created January 9, 2010 05:00
Show Gist options
  • Save diabolo/272731 to your computer and use it in GitHub Desktop.
Save diabolo/272731 to your computer and use it in GitHub Desktop.
# config/cucumber.yml
default: --tags ~@wip
new: --tags @wip:2 --wip
# see cucumber-rails wiki for interesting ways to use this file to run cucumber how you want (link here)
# features/support/env.rb
# 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.
ENV["RAILS_ENV"] ||= "cucumber"
require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support
require 'cucumber/rails/rspec'
require 'cucumber/rails/world'
require 'cucumber/rails/active_record'
require 'cucumber/web/tableish'
require 'features/support/step_matcher'
require 'features/support/transaction'
require 'features/support/error_handling'
# features/support/error_handling.rb
# If you set this to false, any error raised from within your app will bubble
# up to your step definition and out to cucumber unless you catch it somewhere
# on the way. You can make Rails rescue errors and render error pages on a
# per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
#
# If you set this to true, Rails will rescue all errors and render error
# pages, more or less in the same way your application would behave in the
# default production environment. It's not recommended to do this for all
# of your scenarios, as this makes it hard to discover errors in your application.
ActionController::Base.allow_rescue = false
Andrew Premdas updated cucumber.yml file to remove erb
Andrew Premdas added cucumber.yml file
http://gist.github.com/272731/748897f4c9d35aa1b29fec2da8e71c0d2cc457ef
Andrew Premdas extract error handling configuration
http://gist.github.com/272731/1994e4390cccea7cb24fc6c7ab599ed5d222575e
Andrew Premdas extract transaction configuration
http://gist.github.com/272731/19b91d783d194e52b3096fe541661816c95711cc
Andrew Premdas extract webrat (step-matcher) configuration http://gist.github.com/272731/372af23b9bb613ba487d60761fe1cd26e4b8e0e0
Andrew Premdas initial version
this gist is all about improving cucumber support files, idea of this file is to keep history of the gist, so for each version/fork please put in a comment at the top of this file
# features/support/step_matcher.rb
require 'webrat'
require 'webrat/core/matchers'
require 'cucumber/webrat/element_locator' # Deprecated in favor of #tableish - remove this line if you don't use #element_at or #table_at
# webrat configuration
# note if you need to run different webrat confurations, put them in seperate file and include them using -r, # either with a profile or from the command prompt
Webrat.configure do |config|
config.mode = :rails
config.open_error_files = false # Set to true if you want error pages to pop up in the browser
end
# features/support/transaction.rb
# This file configures how cucumber uses transactions when running scenarios. Most of the time
# you want to run a scenarios in a transaction. This will keep your database in a clean state ensuring
# nothing is left behind from previous scenarios. However some scenarios can't run within a transaction so we provide you with another way of cleaning your database
# If you set this to true, each scenario will run in a database transaction.
# You can still turn off transactions on a per-scenario basis, simply tagging
# a feature or scenario with the @no-txn tag. If you are using Capybara,
# tagging with @culerity or @javascript will also turn transactions off.
#
# If you set this to false, transactions will be off for all scenarios,
# regardless of whether you use @no-txn or not.
#
# Beware that turning transactions off will leave data in your database
# after each scenario, which can lead to hard-to-debug failures in
# subsequent scenarios. If you do this, we recommend you create a Before
# block that will explicitly put your database in a known state.
Cucumber::Rails::World.use_transactional_fixtures = true
# How to clean your database when transactions are turned off. See
# http://github.com/bmabey/database_cleaner for more info.
require 'database_cleaner'
DatabaseCleaner.strategy = :truncation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment