Filled out the project, added Ezmlm module + spec.
#
# Testing Rake Tasks
# $Id$
#
#
# Keep these tasks optional by handling LoadErrors with stub task
# replacements.
begin
gem 'rspec', '>= 1.1.1'
require 'spec/rake/spectask'
COMMON_SPEC_OPTS = ['-c', '-f', 's']
### Task: spec
Spec::Rake::SpecTask.new( :spec ) do |task|
task.spec_files = SPEC_FILES
task.libs += [LIBDIR]
task.spec_opts = COMMON_SPEC_OPTS
end
task :test => [:spec]
namespace :spec do
desc "Generate HTML output for a spec run"
Spec::Rake::SpecTask.new( :html ) do |task|
task.spec_files = SPEC_FILES
task.spec_opts = ['-f','h', '-D']
end
desc "Generate plain-text output for a CruiseControl.rb build"
Spec::Rake::SpecTask.new( :text ) do |task|
task.spec_files = SPEC_FILES
task.spec_opts = ['-f','p']
end
end
rescue LoadError => err
task :no_rspec do
$stderr.puts "Testing tasks not defined: RSpec rake tasklib not available: %s" %
[ err.message ]
end
task :spec => :no_rspec
namespace :spec do
task :autotest => :no_rspec
task :html => :no_rspec
task :text => :no_rspec
end
end
### RCov (via RSpec) tasks
begin
gem 'rcov'
gem 'rspec', '>= 1.1.1'
COVERAGE_TARGETDIR = STATICWWWDIR + 'coverage'
RCOV_OPTS = ['--exclude', SPEC_EXCLUDES, '--xrefs', '--save']
### Task: coverage (via RCov)
### Task: spec
desc "Build test coverage reports"
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
task :rcov => [:coverage] do; end
### 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
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.rcov_opts = ['--text-coverage-diff']
task.rcov = true
end
### Task: verify coverage
desc "Build coverage statistics"
VerifyTask.new( :verify => :rcov ) do |task|
task.threshold = 85.0
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
task.rcov_opts = ['--exclude', SPEC_EXCLUDES, '--text-report', '--save']
task.rcov = true
end
end
task :clobber_coverage do
rmtree( COVERAGE_TARGETDIR )
end
rescue LoadError => err
task :no_rcov do
$stderr.puts "Coverage tasks not defined: RSpec+RCov tasklib not available: %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
end
task :verify => :no_rcov
end