cucumber/cucumber-rails — pull request #240 by urbanautomaton (2013-02-28 16:36:12+00:00)
Title: Multiple-gemfile testing and travis configuration

Per the discussion in #237 and #238, this implements multi-gemfile testing locally and on travis. The test suite now runs against the latest versions of:

* Rails 3.0, 3.1 and 3.2
* Capybara 1.1 and 2.0

I haven't been able to get the tests running against Rails 4.0 yet because mongoid doesn't support it (and its gemspec blocks installation). The Ruby 2.0 tests only run against Rails 3.2, to save on travis cycles.

I've removed from the gemspec anything that was there solely to provide dependencies for auto-generated apps. This is so Appraisal can omit anything that other rails versions don't need (or clash with, e.g. coffee-rails and rails 3.0). These dependencies now live in the main Gemfile above the gemspec declaration.

Apart from adding a Rails ~> 3.0 specification in the gemspec, I haven't touched any gem versions; the main Gemfile.lock is excluded from the repo anyway, so contributors will automatically get the most recent matching gems at the time of install. The lock files for the appraisal gemfiles are committed, however, so we know the build is being run against a consistent set of gems.

The default test task still runs against Rails 3.2 only. For contributors, the default workflow is unchanged:

$ git clone https://github.com/cucumber/cucumber-rails.git
$ bundle install
$ rake

I've added rake tasks for running the different gemfile tests:

$ rake gemfiles:install # roughly "bundle install" for gemfiles/*.gemfile
$ rake test:all # run test suite against gemfiles/*.gemfile
$ rake test:gemfile[rails_3_0] # run test suite against named gemfile

I think that about covers it - now to see what travis makes of it all.