public
Description: Webrat - Ruby Acceptance Testing for Web applications
Homepage: http://gitrdoc.com/brynary/webrat/tree/master/
Clone URL: git://github.com/brynary/webrat.git
webrat / Rakefile
100644 156 lines (130 sloc) 4.541 kb
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# require 'rubygems'
require "rake/gempackagetask"
require 'rake/rdoctask'
require "rake/clean"
require 'spec'
require 'spec/rake/spectask'
require 'spec/rake/verify_rcov'
require File.expand_path('./lib/webrat.rb')
 
##############################################################################
# Package && release
##############################################################################
spec = Gem::Specification.new do |s|
  s.name = "webrat"
  s.version = Webrat::VERSION
  s.platform = Gem::Platform::RUBY
  s.author = "Bryan Helmkamp"
  s.email = "bryan" + "@" + "brynary.com"
  s.homepage = "http://github.com/brynary/webrat"
  s.summary = "Webrat. Ruby Acceptance Testing for Web applications"
  s.bindir = "bin"
  s.description = s.summary
  s.require_path = "lib"
  s.files = %w(History.txt install.rb MIT-LICENSE.txt README.rdoc Rakefile) + Dir["lib/**/*"] + Dir["vendor/**/*"]
 
  # rdoc
  s.has_rdoc = true
  s.extra_rdoc_files = %w(README.rdoc MIT-LICENSE.txt)
 
  # Dependencies
  s.add_dependency "nokogiri", ">= 1.2.0"
 
  s.rubyforge_project = "webrat"
end
 
Rake::GemPackageTask.new(spec) do |package|
  package.gem_spec = spec
end
 
desc 'Show information about the gem.'
task :debug_gem do
  puts spec.to_ruby
end
 
CLEAN.include ["pkg", "*.gem", "doc", "ri", "coverage"]
 
desc "Upload rdoc to brynary.com"
task :publish_rdoc => :docs do
  sh "scp -r doc/ brynary.com:/apps/uploads/webrat"
end
 
desc "Run API and Core specs"
Spec::Rake::SpecTask.new do |t|
  t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""]
  t.spec_files = FileList['spec/public/**/*_spec.rb'] + FileList['spec/private/**/*_spec.rb']
end
 
desc "Run all specs in spec directory with RCov"
Spec::Rake::SpecTask.new(:rcov) do |t|
  t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""]
  t.spec_files = FileList['spec/public/**/*_spec.rb'] + FileList['spec/private/**/*_spec.rb']
  t.rcov = true
  t.rcov_opts = lambda do
    IO.readlines(File.dirname(__FILE__) + "/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
  end
end
 
RCov::VerifyTask.new(:verify_rcov => :rcov) do |t|
  t.threshold = 96.2 # Make sure you have rcov 0.7 or higher!
end
 
desc 'Install the package as a gem.'
task :install_gem => [:clean, :package] do
  gem_filename = Dir['pkg/*.gem'].first
  sh "sudo gem install --no-rdoc --no-ri --local #{gem_filename}"
end
 
desc "Delete generated RDoc"
task :clobber_docs do
  FileUtils.rm_rf("doc")
end
 
desc "Generate RDoc"
task :docs => :clobber_docs do
  system "hanna --title 'Webrat #{Webrat::VERSION} API Documentation'"
end
 
desc "Run specs using jruby"
task "spec:jruby" do
  result = system "jruby -S rake spec"
  raise "JRuby tests failed" unless result
end
 
desc "Run each spec in isolation to test for dependency issues"
task :spec_deps do
  Dir["spec/**/*_spec.rb"].each do |test|
    if !system("spec #{test} &> /dev/null")
      puts "Dependency Issues: #{test}"
    end
  end
end
 
task :prepare do
  system "ln -s ../../../../.. ./spec/integration/rails/vendor/plugins/webrat"
end
 
namespace :spec do
  desc "Run the integration specs"
  task :integration => ["integration:rails", "integration:merb", "integration:sinatra"]
 
  namespace :integration do
    desc "Run the Rails integration specs"
    task :rails => ['rails:webrat'] #,'rails:selenium'] currently not running selenium as it doesn't pass.
 
    namespace :rails do
      task :selenium do
        Dir.chdir "spec/integration/rails" do
          result = system "rake test_unit:selenium"
          raise "Rails integration tests failed" unless result
        end
      end
 
      task :webrat do
        Dir.chdir "spec/integration/rails" do
          result = system "rake test_unit:rails"
          raise "Rails integration tests failed" unless result
        end
      end
    end
 
    desc "Run the Merb integration specs"
    task :merb do
      Dir.chdir "spec/integration/merb" do
        result = system "rake spec"
        raise "Merb integration tests failed" unless result
      end
    end
 
    desc "Run the Sinatra integration specs"
    task :sinatra do
      Dir.chdir "spec/integration/sinatra" do
        result = system "rake test"
        raise "Sinatra tntegration tests failed" unless result
      end
    end
  end
end
 
task :default => :spec
 
task :precommit => ["spec", "spec:jruby", "spec:integration"]
 
desc 'Removes trailing whitespace'
task :whitespace do
  sh %{find . -name '*.rb' -exec sed -i '' 's/ *$//g' {} \\;}
end