rake/testing.rb in sysexits-1.0.0 vs rake/testing.rb in sysexits-1.0.1

- old
+ new

@@ -14,11 +14,11 @@ end end SPEC_FILES = [] unless defined?( SPEC_FILES ) TEST_FILES = [] unless defined?( TEST_FILES ) -COMMON_SPEC_OPTS = ['-Du'] unless defined?( COMMON_SPEC_OPTS ) +COMMON_RSPEC_OPTS = [] unless defined?( COMMON_RSPEC_OPTS ) COVERAGE_TARGETDIR = BASEDIR + 'coverage' unless defined?( COVERAGE_TARGETDIR ) RCOV_EXCLUDES = 'spec,tests,/Library/Ruby,/var/lib,/usr/local/lib' unless defined?( RCOV_EXCLUDES ) @@ -37,151 +37,115 @@ end ### RSpec specifications begin - gem 'rspec', '>= 1.1.3' + gem 'rspec', '>= 2.0.0' - require 'spec' - require 'spec/rake/spectask' + require 'rspec' + require 'rspec/core/rake_task' ### Task: spec desc "Run specs" task :spec => 'spec:doc' namespace :spec do desc "Run rspec every time there's a change to one of the files" task :autotest do - require 'autotest/rspec' - - autotester = Autotest::Rspec.new - autotester.run + require 'autotest' + Autotest.add_discovery { "rspec2" } + Autotest.run end desc "Generate regular color 'doc' spec output" - Spec::Rake::SpecTask.new( :doc ) do |task| - task.spec_files = SPEC_FILES - task.spec_opts = COMMON_SPEC_OPTS + ['-f', 's', '-c'] + RSpec::Core::RakeTask.new( :doc ) do |task| + task.rspec_opts = COMMON_RSPEC_OPTS + ['-f', 'p', '-c'] end desc "Generate spec output with profiling" - Spec::Rake::SpecTask.new( :profile ) do |task| - task.spec_files = SPEC_FILES - task.spec_opts = COMMON_SPEC_OPTS + ['-f', 'o'] + RSpec::Core::RakeTask.new( :profile ) do |task| + task.rspec_opts = COMMON_RSPEC_OPTS + ['-f', 'p', '-p'] end desc "Generate quiet non-colored plain-text output" - Spec::Rake::SpecTask.new( :quiet ) do |task| - task.spec_files = SPEC_FILES - task.spec_opts = COMMON_SPEC_OPTS + ['-f', 'p'] + RSpec::Core::RakeTask.new( :quiet ) do |task| + task.rspec_opts = COMMON_RSPEC_OPTS + ['-f', 'p'] end desc "Generate HTML output" - Spec::Rake::SpecTask.new( :html ) do |task| - task.spec_files = SPEC_FILES - task.spec_opts = COMMON_SPEC_OPTS + ['-f', 'h'] + RSpec::Core::RakeTask.new( :html ) do |task| + task.rspec_opts = COMMON_RSPEC_OPTS + ['-f', 'h'] end - end -rescue LoadError => err - task :no_rspec do - $stderr.puts "Specification tasks not defined: %s" % [ err.message ] - end - task :spec => :no_rspec - namespace :spec do - task :autotest => :no_rspec - task :doc => :no_rspec - task :profile => :no_rspec - task :quiet => :no_rspec - task :html => :no_rspec end -end - -### Test::Unit tests -begin - require 'rake/testtask' - - Rake::TestTask.new( :unittests ) do |task| - task.libs += [LIBDIR] - task.test_files = TEST_FILES - task.verbose = true - end - -rescue LoadError => err - task :no_test do - $stderr.puts "Test tasks not defined: %s" % [ err.message ] - end - - task :unittests => :no_rspec -end - - -### RCov (via RSpec) tasks -begin - gem 'rcov' - gem 'rspec', '>= 1.1.3' - - require 'spec' - require 'rcov' - ### Task: coverage (via RCov) desc "Build test coverage reports" - unless SPEC_FILES.empty? - Spec::Rake::SpecTask.new( :coverage ) do |task| - task.spec_files = SPEC_FILES - task.libs += [LIBDIR] - task.spec_opts = ['-f', 'p', '-b'] - task.rcov_opts = RCOV_OPTS - task.rcov = true - end + RSpec::Core::RakeTask.new( :coverage ) do |task| + task.ruby_opts = [ "-I#{LIBDIR}" ] + task.rspec_opts = ['-f', 'p', '-b'] + task.rcov_opts = RCOV_OPTS + task.rcov = true end - ### Task: rcov task :rcov => :coverage ### Other coverage tasks namespace :coverage do desc "Generate a detailed text coverage report" - Spec::Rake::SpecTask.new( :text ) do |task| - task.spec_files = SPEC_FILES + RSpec::Core::RakeTask.new( :text ) do |task| task.rcov_opts = RCOV_OPTS + ['--text-report'] task.rcov = true end desc "Show differences in coverage from last run" - Spec::Rake::SpecTask.new( :diff ) do |task| - task.spec_files = SPEC_FILES - task.spec_opts = ['-f', 'p', '-b'] + RSpec::Core::RakeTask.new( :diff ) do |task| + task.rspec_opts = ['-f', 'p', '-b'] task.rcov_opts = RCOV_OPTS - ['--save'] + ['--text-coverage-diff'] task.rcov = true end desc "Run RCov in 'spec-only' mode to check coverage from specs" - Spec::Rake::SpecTask.new( :speconly ) do |task| - task.spec_files = SPEC_FILES + RSpec::Core::RakeTask.new( :speconly ) do |task| task.rcov_opts = ['--exclude', RCOV_EXCLUDES, '--text-report', '--save'] task.rcov = true end end CLOBBER.include( COVERAGE_TARGETDIR ) - rescue LoadError => err - task :no_rcov do - $stderr.puts "Coverage tasks not defined: RSpec+RCov tasklib not available: %s" % - [ err.message ] + task :no_rspec do + $stderr.puts "Specification tasks not defined: %s" % [ err.message ] end - task :coverage => :no_rcov - task :clobber_coverage - task :rcov => :no_rcov - namespace :coverage do - task :text => :no_rcov - task :diff => :no_rcov + task :spec => :no_rspec + namespace :spec do + task :autotest => :no_rspec + task :doc => :no_rspec + task :profile => :no_rspec + task :quiet => :no_rspec + task :html => :no_rspec end - task :verify => :no_rcov +end + + +### Test::Unit tests +begin + require 'rake/testtask' + + Rake::TestTask.new( :unittests ) do |task| + task.libs += [LIBDIR] + task.test_files = TEST_FILES + task.verbose = true + end + +rescue LoadError => err + task :no_test do + $stderr.puts "Test tasks not defined: %s" % [ err.message ] + end + + task :unittests => :no_rspec end