diff --git a/Gemfile b/Gemfile index cc03f19..38cbe41 100644 --- a/Gemfile +++ b/Gemfile @@ -82,6 +82,7 @@ group :test do gem "test-unit", :platforms => platforms gem "mocha", "0.12.3" gem 'capybara', '~> 2.0.0' + gem 'simplecov', :platforms => [:mri_19] end local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local") diff --git a/lib/tasks/redmine.rake b/lib/tasks/redmine.rake index 0ad4f2f..619fbeb 100644 --- a/lib/tasks/redmine.rake +++ b/lib/tasks/redmine.rake @@ -119,6 +119,18 @@ namespace :redmine do t.pattern = "plugins/#{ENV['NAME'] || '*'}/test/integration/**/*_test.rb" end end + + desc 'Measures test coverage for a plugin.' + task :coverage do + name = ENV['NAME'] + abort 'this task requires an argument NAME' unless name + abort "plugin #{name} not found" unless File.directory?("plugins/#{name}") + cd "plugins/#{name}" + rm_f "coverage" + require 'simplecov' + SimpleCov.start 'rails' + Dir.glob('test/**/*_test.rb').each { |f| require "./#{f}" } + end end end