Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Add Appraisals to the project to handle testing against multiple Rail…

…s version

Note that we also bump RSpec to 2.6.1.beta1 because the incompatibility with Rails 3.1.0.rc1
  • Loading branch information...
commit 44847c6a87823679adba68ec3da01ba751d32ac6 1 parent 224f2e5
@sikachu sikachu authored
View
8 Appraisals
@@ -0,0 +1,8 @@
+appraise "rails30" do
+ gem "rails", "3.0.3"
+ gem "rake", "~> 0.8.7"
+end
+
+appraise "rails31" do
+ gem "rails", "3.1.0.rc1"
+end
View
1  Gemfile
@@ -1,4 +1,5 @@
source 'http://rubygems.org'
gemspec
+gem 'rake', '~> 0.8.7'
View
9 Rakefile
@@ -5,6 +5,7 @@ require 'rake/rdoctask'
require 'rake/gempackagetask'
require 'rspec/core/rake_task'
require 'cucumber/rake/task'
+require 'appraisal'
$LOAD_PATH.unshift("lib")
require 'shoulda/matchers/version'
@@ -41,10 +42,14 @@ desc "Clean files generated by rake tasks"
task :clobber => [:clobber_rdoc, :clobber_package]
Cucumber::Rake::Task.new do |t|
- t.fork = true
+ t.fork = false
t.cucumber_opts = ['--format', (ENV['CUCUMBER_FORMAT'] || 'progress')]
end
desc 'Default: run specs and cucumber features'
-task :default => [:spec, :cucumber]
+task :default => [:all]
+desc 'Test the plugin under all supported Rails versions.'
+task :all, "appraisal:install" do |t|
+ exec('rake appraisal spec cucumber')
+end
View
7 features/rails_integration.feature
@@ -1,4 +1,3 @@
-@disable-bundler
Feature: integrate with Rails
Background:
@@ -13,7 +12,7 @@ Feature: integrate with Rails
end
end
"""
- When I successfully run "rake db:migrate --trace"
+ When I successfully run `bundle exec rake db:migrate --trace`
And I write to "app/models/user.rb" with:
"""
class User < ActiveRecord::Base
@@ -55,7 +54,7 @@ Feature: integrate with Rails
should assign_to(:example)
end
"""
- When I successfully run "rake test TESTOPTS=-v --trace"
+ When I successfully run `bundle exec rake test TESTOPTS=-v --trace`
Then the output should contain "1 tests, 1 assertions, 0 failures, 0 errors"
And the output should contain "2 tests, 2 assertions, 0 failures, 0 errors"
And the output should contain "User should require name to be set"
@@ -82,7 +81,7 @@ Feature: integrate with Rails
it { should assign_to(:example) }
end
"""
- When I successfully run "rake spec SPEC_OPTS=-fs --trace"
+ When I successfully run `bundle exec rake spec SPEC_OPTS=-fs --trace`
Then the output should contain "2 examples, 0 failures"
And the output should contain "should require name to be set"
And the output should contain "should assign @example"
View
49 features/step_definitions/rails_steps.rb
@@ -1,39 +1,44 @@
PROJECT_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')).freeze
APP_NAME = 'testapp'.freeze
+BUNDLE_ENV_VARS = %w(RUBYOPT BUNDLE_PATH BUNDLE_BIN_PATH BUNDLE_GEMFILE)
+ORIGINAL_BUNDLE_VARS = ENV.select{ |key,value| BUNDLE_ENV_VARS.include?(key) }
+
+After do
+ ORIGINAL_BUNDLE_VARS.each_pair do |key, value|
+ ENV[key] = value
+ end
+end
+
When /^I generate a new rails application$/ do
steps %{
- When I run "rails _3.0.3_ new #{APP_NAME}"
+ When I run `rails new #{APP_NAME}`
And I cd to "#{APP_NAME}"
- And I write to "Gemfile" with:
- """
- source "http://rubygems.org"
- gem 'rails', '3.0.3'
- gem 'sqlite3-ruby', :require => 'sqlite3'
- """
- And I successfully run "bundle install --local"
+ And I append gems from Appraisal Gemfile
+ And I reset Bundler environment variable
+ And I successfully run `bundle install --local`
}
end
When /^I configure the application to use "([^\"]+)" from this project$/ do |name|
append_to_gemfile "gem '#{name}', :path => '#{PROJECT_ROOT}'"
- steps %{And I run "bundle install --local"}
+ steps %{And I run `bundle install --local`}
end
When /^I run the rspec generator$/ do
steps %{
- When I successfully run "rails generate rspec:install"
+ When I successfully run `rails generate rspec:install`
}
end
When /^I configure the application to use rspec\-rails$/ do
- append_to_gemfile "gem 'rspec-rails'"
- steps %{And I run "bundle install --local"}
+ append_to_gemfile "gem 'rspec-rails', '~> 2.6.1.beta1'"
+ steps %{And I run `bundle install --local`}
end
When /^I configure the application to use shoulda-context$/ do
append_to_gemfile "gem 'shoulda-context', :git => 'git@github.com:thoughtbot/shoulda-context.git'"
- steps %{And I run "bundle install --local"}
+ steps %{And I run `bundle install --local`}
end
When /^I configure a wildcard route$/ do
@@ -47,7 +52,21 @@
}
end
-module AppendHelpers
+When /^I append gems from Appraisal Gemfile$/ do
+ File.read(ENV['BUNDLE_GEMFILE']).split(/\n/).each do |line|
+ if line =~ /^gem "(?!rails|appraisal)/
+ append_to_gemfile line.strip
+ end
+ end
+end
+
+When /^I reset Bundler environment variable$/ do
+ BUNDLE_ENV_VARS.each do |key|
+ ENV[key] = nil
+ end
+end
+
+module FileHelpers
def append_to(path, contents)
in_current_dir do
File.open(path, "a") do |file|
@@ -62,4 +81,4 @@ def append_to_gemfile(contents)
end
end
-World(AppendHelpers)
+World(FileHelpers)
View
8 gemfiles/rails30.gemfile
@@ -0,0 +1,8 @@
+# This file was generated by Appraisal
+
+source "http://rubygems.org"
+
+gem "rake", "~> 0.8.7"
+gem "rails", "3.0.3"
+
+gemspec :path=>"/Users/sikachu/Projects/shoulda-matchers"
View
137 gemfiles/rails30.gemfile.lock
@@ -0,0 +1,137 @@
+PATH
+ remote: /Users/sikachu/Projects/shoulda-matchers
+ specs:
+ shoulda-matchers (1.0.0.beta3)
+
+GEM
+ remote: http://rubygems.org/
+ specs:
+ abstract (1.0.0)
+ actionmailer (3.0.3)
+ actionpack (= 3.0.3)
+ mail (~> 2.2.9)
+ actionpack (3.0.3)
+ activemodel (= 3.0.3)
+ activesupport (= 3.0.3)
+ builder (~> 2.1.2)
+ erubis (~> 2.6.6)
+ i18n (~> 0.4)
+ rack (~> 1.2.1)
+ rack-mount (~> 0.6.13)
+ rack-test (~> 0.5.6)
+ tzinfo (~> 0.3.23)
+ activemodel (3.0.3)
+ activesupport (= 3.0.3)
+ builder (~> 2.1.2)
+ i18n (~> 0.4)
+ activerecord (3.0.3)
+ activemodel (= 3.0.3)
+ activesupport (= 3.0.3)
+ arel (~> 2.0.2)
+ tzinfo (~> 0.3.23)
+ activeresource (3.0.3)
+ activemodel (= 3.0.3)
+ activesupport (= 3.0.3)
+ activesupport (3.0.3)
+ appraisal (0.3.2)
+ aruba (~> 0.3.6)
+ bundler
+ rake
+ archive-tar-minitar (0.5.2)
+ arel (2.0.10)
+ aruba (0.3.6)
+ childprocess (>= 0.1.7)
+ cucumber (>= 0.10.0)
+ rspec (>= 2.5.0)
+ builder (2.1.2)
+ childprocess (0.1.9)
+ ffi (~> 1.0.6)
+ columnize (0.3.2)
+ cucumber (0.10.3)
+ builder (>= 2.1.2)
+ diff-lcs (>= 1.1.2)
+ gherkin (>= 2.3.8)
+ json (>= 1.4.6)
+ term-ansicolor (>= 1.0.5)
+ diff-lcs (1.1.2)
+ erubis (2.6.6)
+ abstract (>= 1.0.0)
+ ffi (1.0.9)
+ gherkin (2.3.9)
+ json (>= 1.4.6)
+ i18n (0.6.0)
+ json (1.5.1)
+ linecache19 (0.5.12)
+ ruby_core_source (>= 0.1.4)
+ mail (2.2.19)
+ activesupport (>= 2.3.6)
+ i18n (>= 0.4.0)
+ mime-types (~> 1.16)
+ treetop (~> 1.4.8)
+ mime-types (1.16)
+ mocha (0.9.12)
+ polyglot (0.3.1)
+ rack (1.2.3)
+ rack-mount (0.6.14)
+ rack (>= 1.0.0)
+ rack-test (0.5.7)
+ rack (>= 1.0)
+ rails (3.0.3)
+ actionmailer (= 3.0.3)
+ actionpack (= 3.0.3)
+ activerecord (= 3.0.3)
+ activeresource (= 3.0.3)
+ activesupport (= 3.0.3)
+ bundler (~> 1.0)
+ railties (= 3.0.3)
+ railties (3.0.3)
+ actionpack (= 3.0.3)
+ activesupport (= 3.0.3)
+ rake (>= 0.8.7)
+ thor (~> 0.14.4)
+ rake (0.8.7)
+ rspec (2.6.0)
+ rspec-core (~> 2.6.0)
+ rspec-expectations (~> 2.6.0)
+ rspec-mocks (~> 2.6.0)
+ rspec-core (2.6.3)
+ rspec-expectations (2.6.0)
+ diff-lcs (~> 1.1.2)
+ rspec-mocks (2.6.0)
+ rspec-rails (2.6.1.beta1)
+ actionpack (~> 3.0)
+ activesupport (~> 3.0)
+ railties (~> 3.0)
+ rspec (~> 2.6.0)
+ ruby-debug-base19 (0.11.25)
+ columnize (>= 0.3.1)
+ linecache19 (>= 0.5.11)
+ ruby_core_source (>= 0.1.4)
+ ruby-debug19 (0.11.6)
+ columnize (>= 0.3.1)
+ linecache19 (>= 0.5.11)
+ ruby-debug-base19 (>= 0.11.19)
+ ruby_core_source (0.1.5)
+ archive-tar-minitar (>= 0.5.2)
+ sqlite3 (1.3.3)
+ sqlite3-ruby (1.3.3)
+ sqlite3 (>= 1.3.3)
+ term-ansicolor (1.0.5)
+ thor (0.14.6)
+ treetop (1.4.9)
+ polyglot (>= 0.3.1)
+ tzinfo (0.3.27)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ appraisal (~> 0.3.1)
+ cucumber (~> 0.10.0)
+ mocha (~> 0.9.10)
+ rails (= 3.0.3)
+ rake (~> 0.8.7)
+ rspec-rails (~> 2.6.1.beta1)
+ ruby-debug19 (~> 0.11.6)
+ shoulda-matchers!
+ sqlite3-ruby (~> 1.3.2)
View
8 gemfiles/rails31.gemfile
@@ -0,0 +1,8 @@
+# This file was generated by Appraisal
+
+source "http://rubygems.org"
+
+gem "rake", "~> 0.8.7"
+gem "rails", "3.1.0.rc1"
+
+gemspec :path=>"/Users/sikachu/Projects/shoulda-matchers"
View
151 gemfiles/rails31.gemfile.lock
@@ -0,0 +1,151 @@
+PATH
+ remote: /Users/sikachu/Projects/shoulda-matchers
+ specs:
+ shoulda-matchers (1.0.0.beta3)
+
+GEM
+ remote: http://rubygems.org/
+ specs:
+ actionmailer (3.1.0.rc1)
+ actionpack (= 3.1.0.rc1)
+ mail (~> 2.3.0)
+ actionpack (3.1.0.rc1)
+ activemodel (= 3.1.0.rc1)
+ activesupport (= 3.1.0.rc1)
+ builder (~> 3.0.0)
+ erubis (~> 2.7.0)
+ i18n (~> 0.6.0beta1)
+ rack (~> 1.3.0.beta2)
+ rack-cache (~> 1.0.1)
+ rack-mount (~> 0.8.1)
+ rack-test (~> 0.6.0)
+ sprockets (~> 2.0.0.beta.5)
+ tzinfo (~> 0.3.27)
+ activemodel (3.1.0.rc1)
+ activesupport (= 3.1.0.rc1)
+ bcrypt-ruby (~> 2.1.4)
+ builder (~> 3.0.0)
+ i18n (~> 0.6.0beta1)
+ activerecord (3.1.0.rc1)
+ activemodel (= 3.1.0.rc1)
+ activesupport (= 3.1.0.rc1)
+ arel (~> 2.1.1)
+ tzinfo (~> 0.3.27)
+ activeresource (3.1.0.rc1)
+ activemodel (= 3.1.0.rc1)
+ activesupport (= 3.1.0.rc1)
+ activesupport (3.1.0.rc1)
+ multi_json (~> 1.0)
+ appraisal (0.3.2)
+ aruba (~> 0.3.6)
+ bundler
+ rake
+ archive-tar-minitar (0.5.2)
+ arel (2.1.1)
+ aruba (0.3.6)
+ childprocess (>= 0.1.7)
+ cucumber (>= 0.10.0)
+ rspec (>= 2.5.0)
+ bcrypt-ruby (2.1.4)
+ builder (3.0.0)
+ childprocess (0.1.9)
+ ffi (~> 1.0.6)
+ columnize (0.3.2)
+ cucumber (0.10.3)
+ builder (>= 2.1.2)
+ diff-lcs (>= 1.1.2)
+ gherkin (>= 2.3.8)
+ json (>= 1.4.6)
+ term-ansicolor (>= 1.0.5)
+ diff-lcs (1.1.2)
+ erubis (2.7.0)
+ ffi (1.0.9)
+ gherkin (2.3.9)
+ json (>= 1.4.6)
+ hike (1.0.0)
+ i18n (0.6.0)
+ json (1.5.1)
+ linecache19 (0.5.12)
+ ruby_core_source (>= 0.1.4)
+ mail (2.3.0)
+ i18n (>= 0.4.0)
+ mime-types (~> 1.16)
+ treetop (~> 1.4.8)
+ mime-types (1.16)
+ mocha (0.9.12)
+ multi_json (1.0.3)
+ polyglot (0.3.1)
+ rack (1.3.0)
+ rack-cache (1.0.2)
+ rack (>= 0.4)
+ rack-mount (0.8.1)
+ rack (>= 1.0.0)
+ rack-ssl (1.3.2)
+ rack
+ rack-test (0.6.0)
+ rack (>= 1.0)
+ rails (3.1.0.rc1)
+ actionmailer (= 3.1.0.rc1)
+ actionpack (= 3.1.0.rc1)
+ activerecord (= 3.1.0.rc1)
+ activeresource (= 3.1.0.rc1)
+ activesupport (= 3.1.0.rc1)
+ bundler (~> 1.0)
+ railties (= 3.1.0.rc1)
+ railties (3.1.0.rc1)
+ actionpack (= 3.1.0.rc1)
+ activesupport (= 3.1.0.rc1)
+ rack-ssl (~> 1.3.2)
+ rake (>= 0.8.7)
+ thor (~> 0.14.6)
+ rake (0.8.7)
+ rspec (2.6.0)
+ rspec-core (~> 2.6.0)
+ rspec-expectations (~> 2.6.0)
+ rspec-mocks (~> 2.6.0)
+ rspec-core (2.6.3)
+ rspec-expectations (2.6.0)
+ diff-lcs (~> 1.1.2)
+ rspec-mocks (2.6.0)
+ rspec-rails (2.6.1.beta1)
+ actionpack (~> 3.0)
+ activesupport (~> 3.0)
+ railties (~> 3.0)
+ rspec (~> 2.6.0)
+ ruby-debug-base19 (0.11.25)
+ columnize (>= 0.3.1)
+ linecache19 (>= 0.5.11)
+ ruby_core_source (>= 0.1.4)
+ ruby-debug19 (0.11.6)
+ columnize (>= 0.3.1)
+ linecache19 (>= 0.5.11)
+ ruby-debug-base19 (>= 0.11.19)
+ ruby_core_source (0.1.5)
+ archive-tar-minitar (>= 0.5.2)
+ sprockets (2.0.0.beta.8)
+ hike (~> 1.0)
+ rack (~> 1.0)
+ tilt (!= 1.3.0, ~> 1.1)
+ sqlite3 (1.3.3)
+ sqlite3-ruby (1.3.3)
+ sqlite3 (>= 1.3.3)
+ term-ansicolor (1.0.5)
+ thor (0.14.6)
+ tilt (1.3.1)
+ treetop (1.4.9)
+ polyglot (>= 0.3.1)
+ tzinfo (0.3.27)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ appraisal (~> 0.3.1)
+ cucumber (~> 0.10.0)
+ mocha (~> 0.9.10)
+ rails (= 3.1.0.rc1)
+ rake (~> 0.8.7)
+ rspec-rails (~> 2.6.1.beta1)
+ ruby-debug19 (~> 0.11.6)
+ shoulda-matchers!
+ sqlite3-ruby (~> 1.3.2)
View
2  lib/shoulda/matchers/version.rb
@@ -1,5 +1,5 @@
module Shoulda
module Matchers
- VERSION = "1.0.0.beta2".dup
+ VERSION = "1.0.0.beta3".dup
end
end
View
5 shoulda-matchers.gemspec
@@ -19,12 +19,11 @@ Gem::Specification.new do |s|
s.summary = %q{Making tests easy on the fingers and eyes}
s.description = %q{Making tests easy on the fingers and eyes}
- s.add_development_dependency("rails", "3.0.3")
s.add_development_dependency("sqlite3-ruby", "~> 1.3.2")
s.add_development_dependency("mocha", "~> 0.9.10")
- s.add_development_dependency("rspec-rails", "~> 2.3.0")
+ s.add_development_dependency("rspec-rails", "~> 2.6.1.beta1")
s.add_development_dependency("cucumber", "~> 0.10.0")
- s.add_development_dependency("aruba", "~> 0.2.7")
+ s.add_development_dependency("appraisal", "~> 0.3.1")
if RUBY_VERSION >= "1.9"
s.add_development_dependency("ruby-debug19", "~> 0.11.6")
Please sign in to comment.
Something went wrong with that request. Please try again.