@@ -20,16 +20,44 @@ require 'rspec'
20
20
require 'rspec/core/rake_task'
21
21
require 'cucumber/rake/task'
22
22
23
- RSpec ::Core ::RakeTask . new ( :spec )
24
23
class Cucumber ::Rake ::Task ::ForkedCucumberRunner
25
24
# When cucumber shells out, we still need it to run in the context of our
26
25
# bundle.
27
26
def run
28
27
sh "bundle exec #{ RUBY } " + args . join ( " " )
29
28
end
30
29
end
30
+
31
+ task :cleanup_rcov_files do
32
+ rm_rf 'coverage.data'
33
+ end
34
+
35
+ desc "Run all examples"
36
+ RSpec ::Core ::RakeTask . new ( :spec ) do |t |
37
+ t . rspec_opts = %w[ --color ]
38
+ end
39
+
31
40
Cucumber ::Rake ::Task . new ( :cucumber )
32
41
42
+ namespace :spec do
43
+ desc "Run all examples using rcov"
44
+ RSpec ::Core ::RakeTask . new :rcov => :cleanup_rcov_files do |t |
45
+ t . rcov = true
46
+ t . rcov_opts = %[-Ilib -Ispec --exclude "gems/*,features"]
47
+ t . rcov_opts << %[--text-report --sort coverage --no-html --aggregate coverage.data]
48
+ end
49
+ end
50
+
51
+ namespace :cucumber do
52
+ desc "Run cucumber features using rcov"
53
+ Cucumber ::Rake ::Task . new :rcov => :cleanup_rcov_files do |t |
54
+ t . cucumber_opts = %w{ --format progress }
55
+ t . rcov = true
56
+ t . rcov_opts = %[-Ilib -Ispec --exclude "gems/*,features"]
57
+ t . rcov_opts << %[--text-report --sort coverage --aggregate coverage.data]
58
+ end
59
+ end
60
+
33
61
namespace :generate do
34
62
desc "generate a fresh app with rspec installed"
35
63
task :app do |t |
@@ -91,5 +119,5 @@ task :relish, :version do |t, args|
91
119
sh "bundle exec relish --organization rspec --project rspec-rails -v #{ args [ :version ] } push"
92
120
end
93
121
94
- task :default => [ :spec , "clobber:app" , "generate:app" , "generate:stuff" , :cucumber , :smoke ]
122
+ task :default => [ :spec , "clobber:app" , "generate:app" , "generate:stuff" , :smoke , :cucumber ]
95
123
0 commit comments