forked from ci-reporter/ci_reporter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
130 lines (116 loc) · 4 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#--
# Copyright (c) 2006-2012 Nick Sieger <[email protected]>
# See the file LICENSE.txt included with the distribution for
# software license details.
#++
require 'bundler/setup'
begin
require 'hoe'
Hoe.plugin :rubyforge, :git
require File.dirname(__FILE__) + '/lib/ci/reporter/version'
hoe = Hoe.spec("ci_reporter") do |p|
p.version = CI::Reporter::VERSION
p.rubyforge_name = "caldersphere"
p.readme_file = "README.rdoc"
p.url = "http://caldersphere.rubyforge.org/ci_reporter"
p.author = "Nick Sieger"
p.email = "[email protected]"
p.readme_file = 'README.rdoc'
p.summary = "CI::Reporter allows you to generate reams of XML for use with continuous integration systems."
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
p.description = p.paragraphs_of('README.rdoc', 0...1).join("\n\n")
p.extra_rdoc_files += ["README.rdoc"]
p.test_globs = ["spec/**/*_spec.rb"]
p.extra_deps << [ 'builder', '>= 2.1.2' ]
p.extra_dev_deps << [ 'hoe-git', '~> 1.5.0' ]
p.extra_dev_deps << [ 'cucumber', '~> 0.10.0' ]
p.extra_dev_deps << [ 'rspec', '> 2.0.0' ]
p.extra_dev_deps << [ 'test-unit', '> 2.4.9' ]
p.extra_dev_deps << [ 'minitest', '~> 2.2.0' ]
p.extra_dev_deps << [ 'spinach', '< 0.2' ]
p.clean_globs += ["spec/reports", "acceptance/reports"]
end
hoe.spec.rdoc_options += ["-SHN", "-f", "darkfish"]
task :gemspec do
File.open("#{hoe.name}.gemspec", "w") {|f| f << hoe.spec.to_ruby }
end
task :package => :gemspec
rescue LoadError
puts "You really need Hoe installed to be able to package this gem"
end
# Hoe insists on setting task :default => :test
# !@#$ no easy way to empty the default list of prerequisites
# Leave my tasks alone, Hoe
%w(default spec rcov).each do |task|
next unless Rake::Task.task_defined?(task)
Rake::Task[task].prerequisites.clear
Rake::Task[task].actions.clear
end
# RCov only on 1.8
if defined?(RUBY_ENGINE)
task :default => :spec
else
task :default => :rcov
end
RSpecTask = begin
require 'rspec/core/rake_task'
@spec_bin = 'rspec'
RSpec::Core::RakeTask
rescue LoadError
require 'spec/rake/spectask'
@spec_bin = 'spec'
Spec::Rake::SpecTask
end
RSpecTask.new do |t|
t.rspec_opts = "--color"
end
RSpecTask.new("spec:rcov") do |t|
t.rcov_opts = ['--exclude gems/*']
t.rcov = true
end
begin
require 'spec/rake/verify_rcov'
# so we don't confuse autotest
RCov::VerifyTask.new(:rcov) do |t|
# Can't get threshold up to 100 unless RSpec backwards compatibility
# code is dropped
t.threshold = 95
t.require_exact_threshold = false
end
rescue LoadError
end
task :rcov => "spec:rcov"
task :generate_output do
rm_rf "acceptance/reports"
ENV['CI_REPORTS'] = "acceptance/reports"
if ENV['RUBYOPT']
opts = ENV['RUBYOPT']
ENV['RUBYOPT'] = nil
else
opts = "-rubygems"
end
begin
result_proc = proc {|ok,*| puts "Failures above are expected." unless ok }
ruby "-Ilib #{opts} -rci/reporter/rake/test_unit_loader acceptance/test_unit_example_test.rb", &result_proc
ruby "-Ilib #{opts} -rci/reporter/rake/minitest_loader acceptance/minitest_example_test.rb", &result_proc
ruby "-Ilib #{opts} -S #{@spec_bin} --require ci/reporter/rake/rspec_loader --format CI::Reporter::RSpec acceptance/rspec_example_spec.rb", &result_proc
ruby "-Ilib #{opts} -rci/reporter/rake/cucumber_loader -S cucumber --format CI::Reporter::Cucumber acceptance/cucumber", &result_proc
Dir.chdir 'acceptance/spinach' do
Bundler.with_clean_env do
ENV['CI_REPORTS'] = "../reports/spinach"
ruby "-S bundle"
ruby "-I../../lib #{opts} -rci/reporter/rake/spinach_loader -S spinach", &result_proc
end
end
ensure
ENV['RUBYOPT'] = opts if opts != "-rubygems"
ENV.delete 'CI_REPORTS'
end
end
task :acceptance => :generate_output
RSpecTask.new(:acceptance_spec) do |t|
t.pattern = FileList['acceptance/verification_spec.rb']
t.rspec_opts = "--color"
end
task :acceptance => :acceptance_spec
task :default => :acceptance