From 8703ca0ec655047c01a454737a5a42705d2f67ef Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Wed, 17 Nov 2010 16:28:18 +0100 Subject: [PATCH] remove test setup file (and thus, test run options) --- README.textile | 21 ++------------- test/test_helper.rb | 28 ++++++++++++++++++-- test/test_setup.rb | 63 --------------------------------------------- 3 files changed, 28 insertions(+), 84 deletions(-) delete mode 100644 test/test_setup.rb diff --git a/README.textile b/README.textile index 7c8ce0f9..c21c3f27 100644 --- a/README.textile +++ b/README.textile @@ -64,25 +64,8 @@ h2. Tests You can run tests both with * `rake test` or just `rake` -* run any test file directly, e.g. `ruby test/api/simple_test.rb` -* run all tests with `ruby test/all.rb` - -You can parametrize the test suite for using different sets of dependencies by -using: - -.pre `ruby test/all.rb -w DEPENDENCIES` - -... where DEPENDENCIES is a comma-separated list of: - -* r23 or rails-2.3.x -* r3 or rails-3.x -* no-rails -* sqlite -* mysql - -So, e.g. this would run the test suite against Rails 2.3.x using mysql: - -.pre `ruby test/all.rb -w r23,mysql` +* run any test file directly, e.g. `ruby -Itest test/api/simple_test.rb` +* run all tests with `ruby -Itest test/all.rb` The structure of the test suite is a bit unusual as it uses modules to reuse particular tests in different test cases. diff --git a/test/test_helper.rb b/test/test_helper.rb index 1eed6cf5..35417557 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,6 +1,22 @@ -require 'test_setup' +$KCODE = 'u' if RUBY_VERSION <= '1.9' -I18n::Tests.parse_options! +require 'rubygems' +require 'test/unit' + +# Do not load the i18n gem from libraries like active_support. +# +# This is required for testing against Rails 2.3 because active_support/vendor.rb#24 tries +# to load I18n using the gem method. Instead, we want to test the local library of course. +alias :gem_for_ruby_19 :gem # for 1.9. gives a super ugly seg fault otherwise +def gem(gem_name, *version_requirements) + puts("skipping loading the i18n gem ...") && return if gem_name =='i18n' + super(gem_name, *version_requirements) +end + +require 'bundler/setup' +require 'i18n' +require 'mocha' +require 'test_declarative' class Test::Unit::TestCase def teardown @@ -26,6 +42,14 @@ def locales_dir end end +module Kernel + def setup_rufus_tokyo + require 'rufus/tokyo' + rescue LoadError => e + puts "can't use KeyValue backend because: #{e.message}" + end +end + Object.class_eval do def meta_class class << self; self; end diff --git a/test/test_setup.rb b/test/test_setup.rb deleted file mode 100644 index dccda2c0..00000000 --- a/test/test_setup.rb +++ /dev/null @@ -1,63 +0,0 @@ -$KCODE = 'u' if RUBY_VERSION <= '1.9' - -require 'rubygems' -require 'test/unit' -require 'optparse' - -# Do not load the i18n gem from libraries like active_support. -# -# This is required for testing against Rails 2.3 because active_support/vendor.rb#24 tries -# to load I18n using the gem method. Instead, we want to test the local library of course. -alias :gem_for_ruby_19 :gem # for 1.9. gives a super ugly seg fault otherwise -def gem(gem_name, *version_requirements) - puts("skipping loading the i18n gem ...") && return if gem_name =='i18n' - super(gem_name, *version_requirements) -end - -require 'bundler/setup' -require 'i18n' -require 'mocha' -require 'test_declarative' - -module I18n - module Tests - class << self - def options - @options ||= { :with => [], :adapter => 'sqlite3' } - end - - def parse_options! - OptionParser.new do |o| - o.on('-w', '--with DEPENDENCIES', 'Define dependencies') do |dep| - options[:with] = dep.split(',').map { |group| group.to_sym } - end - end.parse! - - options[:with].each do |dep| - case dep - when :sqlite3, :mysql, :postgres - @options[:adapter] = dep - when :r23, :'rails-2.3.x' - ENV['BUNDLE_GEMFILE'] = 'ci/Gemfile.rails-2.3.x' - when :r3, :'rails-3.0.x' - ENV['BUNDLE_GEMFILE'] = 'ci/Gemfile.rails-3.x' - when :'no-rails' - ENV['BUNDLE_GEMFILE'] = 'ci/Gemfile.no-rails' - end - end - - ENV['BUNDLE_GEMFILE'] ||= 'ci/Gemfile.all' - end - - def setup_rufus_tokyo - require 'rubygems' - require 'rufus/tokyo' - rescue LoadError => e - puts "can't use KeyValue backend because: #{e.message}" - end - end - end -end - - -