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