rcov_plugin 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,85 @@
1
+ rcov_plugin
2
+ ===========
3
+
4
+ This is a simple rails plugin for Rails 3 that adds some useful rcov rake tasks.
5
+
6
+ rake test:coverage # Tests coverage on the entire application
7
+ rake test:coverage:units # Tests coverage for unit tests
8
+ rake test:coverage:functionals # Tests coverage for functional tests
9
+ rake test:coverage:integration # Tests coverage for integration tests
10
+
11
+ The task ends up creating a coverage folder with an html coverage report in it.
12
+
13
+ SHOW_ONLY is a comma-separated list of the files you'd like to see (although
14
+ you can only run functionals, you still see all the models and helpers which
15
+ are 'touched'). Right now there are four types of files rake test:coverage
16
+ recognizes: models, helpers, controllers, and lib. These can be abbreviated
17
+ to their first letters:
18
+
19
+ rake test:coverage SHOW_ONLY=models
20
+ rake test:coverage SHOW_ONLY=helpers,controllers
21
+ rake test:coverage SHOW_ONLY=h,c
22
+
23
+ Installing
24
+ =============
25
+ As of Rails 3, rake tasks can be distributed easily in plugins packaged as gems, and that's what we do here. So, to install rcov_plugin, simply do:
26
+
27
+ gem install rcov_plugin
28
+
29
+ or add the gem to your bundler Gemspec
30
+
31
+ gem "rcov_plugin"
32
+
33
+ JRuby Support
34
+ =============
35
+ rcov_plugin works great with JRuby.
36
+
37
+ If using JRuby, remember to run rake with it, like this:
38
+ jruby -S rake test:coverage
39
+
40
+ Special thanks go to Leonard Borges ([http://www.leonardoborges.com](http://www.leonardoborges.com)) for getting the plugin working with JRuby.
41
+
42
+ Requirements
43
+ ============
44
+
45
+ This plugin requires rails 3 and
46
+
47
+ Using With Rails 2
48
+ ============
49
+ This plugin worked with Rails 2 back in the day, and I've got a tag on the repo that you can use to install the old Rails 2 version. Use the following command:
50
+
51
+ script/plugin install -r rails_2 git://github.com/commondream/rcov_plugin.git
52
+
53
+ Contributors
54
+ ============
55
+ Special thanks go to all of the contributors to this plugin:
56
+
57
+ * leonardoborges
58
+ * dovadi
59
+ * baldowl
60
+ * archfear
61
+ * nragaz
62
+
63
+ License
64
+ =======
65
+ Copyright (c) 2008 Alan Johnson
66
+
67
+ Permission is hereby granted, free of charge, to any person obtaining
68
+ a copy of this software and associated documentation files (the
69
+ "Software"), to deal in the Software without restriction, including
70
+ without limitation the rights to use, copy, modify, merge, publish,
71
+ distribute, sublicense, and/or sell copies of the Software, and to
72
+ permit persons to whom the Software is furnished to do so, subject to
73
+ the following conditions:
74
+
75
+ The above copyright notice and this permission notice shall be
76
+ included in all copies or substantial portions of the Software.
77
+
78
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
79
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
80
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
81
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
82
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
83
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
84
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
85
+
@@ -0,0 +1,3 @@
1
+ module RcovPlugin
2
+ require 'rcov_plugin/railtie' if defined?(Rails)
3
+ end
@@ -0,0 +1,13 @@
1
+ require 'rcov_plugin'
2
+ require 'rails'
3
+
4
+ puts "Loaded rcov_plugin"
5
+
6
+ module RcovPlugin
7
+ class Railtie < Rails::Railtie
8
+ rake_tasks do
9
+ puts "Loading rake tasks"
10
+ load "tasks/rcov.rake"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ module RcovPlugin
2
+ VERSION = "3.0.0"
3
+ end
@@ -0,0 +1,77 @@
1
+ def run_coverage(files)
2
+ rm_f "coverage"
3
+ rm_f "coverage.data"
4
+
5
+ # turn the files we want to run into a string
6
+ if files.empty?
7
+ puts "No files were specified for testing"
8
+ return
9
+ end
10
+
11
+ files = files.join(" ")
12
+
13
+ if RUBY_PLATFORM =~ /darwin/
14
+ exclude = '--exclude "gems/*" --exclude "Library/Frameworks/*"'
15
+ elsif RUBY_PLATFORM =~ /java/
16
+ exclude = '--exclude "rubygems/*,jruby/*,parser*,gemspec*,_DELEGATION*,eval*,recognize_optimized*,yaml,yaml/*,fcntl"'
17
+ else
18
+ exclude = '--exclude "rubygems/*"'
19
+ end
20
+ # rake test:units:rcov SHOW_ONLY=models,controllers,lib,helpers
21
+ # rake test:units:rcov SHOW_ONLY=m,c,l,h
22
+ if ENV['SHOW_ONLY']
23
+ params = String.new
24
+ show_only = ENV['SHOW_ONLY'].to_s.split(',').map{|x|x.strip}
25
+ if show_only.any?
26
+ reg_exp = []
27
+ for show_type in show_only
28
+ reg_exp << case show_type
29
+ when 'm', 'models' then 'app\/models'
30
+ when 'c', 'controllers' then 'app\/controllers'
31
+ when 'h', 'helpers' then 'app\/helpers'
32
+ when 'l', 'lib' then 'lib'
33
+ else
34
+ show_type
35
+ end
36
+ end
37
+ reg_exp.map!{ |m| "(#{m})" }
38
+ params << " --exclude \"^(?!#{reg_exp.join('|')})\""
39
+ end
40
+ exclude = exclude + params
41
+ end
42
+
43
+ rcov_bin = RUBY_PLATFORM =~ /java/ ? "jruby -S bundle exec rcov" : "bundle exec rcov"
44
+ rcov = "#{rcov_bin} --rails -Ilib:test --sort coverage --text-report #{exclude}"
45
+ puts
46
+ puts
47
+ puts "Running tests..."
48
+ cmd = "#{rcov} #{files}"
49
+ puts cmd
50
+ sh cmd
51
+ end
52
+
53
+ namespace :test do
54
+
55
+ desc "Measures unit, functional, and integration test coverage"
56
+ task :coverage do
57
+ run_coverage Dir["test/unit/**/*.rb", "test/functional/**/*.rb", "test/integration/**/*.rb"]
58
+ end
59
+
60
+ namespace :coverage do
61
+ desc "Runs coverage on unit tests"
62
+ task :units do
63
+ run_coverage Dir["test/unit/**/*.rb"]
64
+ end
65
+
66
+ desc "Runs coverage on functional tests"
67
+ task :functionals do
68
+ run_coverage Dir["test/functional/**/*.rb"]
69
+ end
70
+
71
+ desc "Runs coverage on integration tests"
72
+ task :integration do
73
+ run_coverage Dir["test/integration/**/*.rb"]
74
+ end
75
+ end
76
+ end
77
+
metadata ADDED
@@ -0,0 +1,97 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rcov_plugin
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 3
7
+ - 0
8
+ - 0
9
+ version: 3.0.0
10
+ platform: ruby
11
+ authors:
12
+ - Alan Johnson
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-04-16 00:00:00 -04:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rails
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 3
29
+ - 0
30
+ - 0
31
+ - beta2
32
+ version: 3.0.0.beta2
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: rcov
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 0
44
+ - 9
45
+ - 6
46
+ version: 0.9.6
47
+ type: :runtime
48
+ version_requirements: *id002
49
+ description: rcov_plugin adds the rake tasks that you need to measure coverage in your Rails project
50
+ email:
51
+ - alan@commondream.net
52
+ executables: []
53
+
54
+ extensions: []
55
+
56
+ extra_rdoc_files: []
57
+
58
+ files:
59
+ - lib/rcov_plugin/railtie.rb
60
+ - lib/rcov_plugin/version.rb
61
+ - lib/rcov_plugin.rb
62
+ - lib/tasks/rcov.rake
63
+ - README.md
64
+ has_rdoc: true
65
+ homepage: http://github.com/commondream/rcov_plugin
66
+ licenses: []
67
+
68
+ post_install_message:
69
+ rdoc_options: []
70
+
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ segments:
78
+ - 0
79
+ version: "0"
80
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ segments:
85
+ - 1
86
+ - 3
87
+ - 6
88
+ version: 1.3.6
89
+ requirements: []
90
+
91
+ rubyforge_project:
92
+ rubygems_version: 1.3.6
93
+ signing_key:
94
+ specification_version: 3
95
+ summary: The easiest way to measure coverage for your Rails project
96
+ test_files: []
97
+