lib/tasks/coverage.rake in p8-metric_fu-0.8.0.16 vs lib/tasks/coverage.rake in p8-metric_fu-0.8.2
- old
+ new
@@ -1,54 +1,40 @@
require 'fileutils'
-
-begin
- require 'rcov'
- require 'rcov/rcovtask'
- require 'spec/rake/spectask'
-
- namespace :metrics do
-
- COVERAGE_DIR = File.join(MetricFu::BASE_DIRECTORY, 'coverage')
- COVERAGE_DATA_FILE = File.join(MetricFu::BASE_DIRECTORY, 'coverage.data')
- SPEC_HTML_FILE = File.join(MetricFu::BASE_DIRECTORY, 'specs.html')
-
- namespace :coverage do
- rcov_output = COVERAGE_DIR
-
- desc "Delete aggregate coverage data."
- task(:clean) { rm_f("rcov_tmp", :verbose => false) }
-
- desc "RCov task to generate report"
- Rcov::RcovTask.new(:do => :clean) do |t|
- FileUtils.mkdir_p(MetricFu::BASE_DIRECTORY) unless File.directory?(MetricFu::BASE_DIRECTORY)
- t.test_files = FileList[*MetricFu.coverage[:test_files]]
- t.rcov_opts = ["--sort coverage", "--html", "--rails", "--exclude /gems/,/Library/"]
- t.output_dir = COVERAGE_DIR
- # this line is a fix for Rails 2.1 relative loading issues
- t.libs << 'test'
- end
- # TODO not sure what this improves but it requires the diff-lcs gem
- # http://github.com/indirect/metric_fu/commit/b9c1cf75f09d5b531b388cd01661eb16b5126968#diff-1
- # Spec::Rake::SpecTask.new(:do => :clean) do |t|
- # FileUtils.mkdir_p(MetricFu::BASE_DIRECTORY) unless File.directory?(MetricFu::BASE_DIRECTORY)
- # t.ruby_opts = ['-rtest/unit']
- # t.spec_files = FileList['test/**/*_test.rb', 'spec/**/*spec.rb']
- # t.spec_opts = ["--format", "html:#{SPEC_HTML_FILE}", "--diff"]
- # t.rcov = true
- # t.rcov_opts = ["--sort coverage", "--html", "--rails", "--exclude /gems/,/Library/"]
- # t.rcov_dir = COVERAGE_DIR
- # end
+require 'spec/rake/spectask'
+require 'spec/rake/verify_rcov'
+
+namespace :metrics do
+
+ COVERAGE_DIR = File.join(MetricFu::BASE_DIRECTORY, 'coverage')
+ COVERAGE_DATA_FILE = File.join(MetricFu::BASE_DIRECTORY, 'coverage.data')
+ SPEC_HTML_FILE = File.join(MetricFu::BASE_DIRECTORY, 'specs.html')
+
+ namespace :coverage do
+ rcov_output = COVERAGE_DIR
+
+ desc "Delete aggregate coverage data."
+ task(:clean) { rm_f("rcov_tmp", :verbose => false) }
+
+ desc "RCov task to generate report"
+ Spec::Rake::SpecTask.new(:do => :clean) do |t|
+ FileUtils.mkdir_p(MetricFu::BASE_DIRECTORY) unless File.directory?(MetricFu::BASE_DIRECTORY)
+ t.ruby_opts = ['-rtest/unit']
+ t.spec_files = FileList['test/**/*_test.rb', 'spec/**/*spec.rb']
+ t.spec_opts = ["--format", "html:#{SPEC_HTML_FILE}", "--diff"]
+ t.rcov = true
+ t.rcov_opts = ["--sort coverage", "--html", "--rails", "--exclude /gems/,/Library/"]
+ t.rcov_dir = COVERAGE_DIR
end
-
- desc "Generate and open coverage report"
- task :coverage => ['coverage:do'] do
- system("open #{COVERAGE_DIR}/index.html") if MetricFu.open_in_browser?
+
+ RCov::VerifyTask.new(:verify => :do) do |t|
+ t.threshold = ( ENV['THRESHOLD'] ? ENV['THRESHOLD'].to_f : 100.0 )
+ t.index_html = File.join(COVERAGE_DIR, 'index.html')
end
end
-rescue LoadError
- if RUBY_PLATFORM =~ /java/
- puts 'running in jruby - rcov tasks not available'
- else
- puts 'sudo gem install rcov # if you want the rcov tasks'
-
+
end
-end
\ No newline at end of file
+
+ desc "Generate and open coverage report"
+ task :coverage => ['coverage:do'] do
+ system("open #{COVERAGE_DIR}/index.html") if PLATFORM['darwin']
+ end
+end