diff options
author | louise <louise> | 2007-10-16 19:46:47 +0000 |
---|---|---|
committer | louise <louise> | 2007-10-16 19:46:47 +0000 |
commit | 115f71d49e4552874b430afe292aac22f832d5fa (patch) | |
tree | d26201b488e1c027b4bced02dd0f84332414518c /vendor/plugins/rspec_on_rails/tasks | |
parent | d350850897a5ee7a994d3c618529cf5beecf71ea (diff) |
Adding rspec_on_rails plugin
Diffstat (limited to 'vendor/plugins/rspec_on_rails/tasks')
-rw-r--r-- | vendor/plugins/rspec_on_rails/tasks/rspec.rake | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/vendor/plugins/rspec_on_rails/tasks/rspec.rake b/vendor/plugins/rspec_on_rails/tasks/rspec.rake new file mode 100644 index 000000000..c9536e86a --- /dev/null +++ b/vendor/plugins/rspec_on_rails/tasks/rspec.rake @@ -0,0 +1,133 @@ +# In rails 1.2, plugins aren't available in the path until they're loaded. +# Check to see if the rspec plugin is installed first and require +# it if it is. If not, use the gem version. +rspec_base = File.expand_path(File.dirname(__FILE__) + '/../../rspec/lib') +$LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base) +require 'spec/rake/spectask' +require 'spec/translator' + +spec_prereq = File.exist?(File.join(RAILS_ROOT, 'config', 'database.yml')) ? "db:test:prepare" : :noop +task :noop do +end + +task :default => :spec +task :stats => "spec:statsetup" + +desc "Run all specs in spec directory (excluding plugin specs)" +Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] +end + +namespace :spec do + desc "Run all specs in spec directory with RCov (excluding plugin specs)" + Spec::Rake::SpecTask.new(:rcov) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] + t.rcov = true + t.rcov_opts = ['--exclude', 'spec', '--rails'] + end + + desc "Print Specdoc for all specs (excluding plugin specs)" + Spec::Rake::SpecTask.new(:doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['spec/**/*_spec.rb'] + end + + desc "Print Specdoc for all plugin specs" + Spec::Rake::SpecTask.new(:plugin_doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*') + end + + [:models, :controllers, :views, :helpers, :lib].each do |sub| + desc "Run the specs under spec/#{sub}" + Spec::Rake::SpecTask.new(sub => spec_prereq) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] + end + end + + desc "Run the specs under vendor/plugins (except RSpec's own)" + Spec::Rake::SpecTask.new(:plugins => spec_prereq) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*').exclude("vendor/plugins/rspec_on_rails/*") + end + + namespace :plugins do + desc "Runs the examples for rspec_on_rails" + Spec::Rake::SpecTask.new(:rspec_on_rails => spec_prereq) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['vendor/plugins/rspec_on_rails/spec/**/*_spec.rb'] + end + end + + desc "Translate/upgrade specs using the built-in translator" + task :translate do + translator = ::Spec::Translator.new + dir = RAILS_ROOT + '/spec' + translator.translate(dir, dir) + end + + # Setup specs for stats + task :statsetup do + require 'code_statistics' + ::STATS_DIRECTORIES << %w(Model\ specs spec/models) + ::STATS_DIRECTORIES << %w(View\ specs spec/views) + ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) + ::STATS_DIRECTORIES << %w(Helper\ specs spec/views) + ::CodeStatistics::TEST_TYPES << "Model specs" + ::CodeStatistics::TEST_TYPES << "View specs" + ::CodeStatistics::TEST_TYPES << "Controller specs" + ::CodeStatistics::TEST_TYPES << "Helper specs" + ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/} + end + + namespace :db do + namespace :fixtures do + desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y" + task :load => :environment do + require 'active_record/fixtures' + ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym) + (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(RAILS_ROOT, 'spec', 'fixtures', '*.{yml,csv}'))).each do |fixture_file| + Fixtures.create_fixtures('spec/fixtures', File.basename(fixture_file, '.*')) + end + end + end + end + + namespace :server do + daemonized_server_pid = File.expand_path("spec_server.pid", RAILS_ROOT + "/tmp") + + desc "start spec_server." + task :start do + if File.exist?(daemonized_server_pid) + $stderr.puts "spec_server is already running." + else + $stderr.puts "Starting up spec server." + system("ruby", "script/spec_server", "--daemon", "--pid", daemonized_server_pid) + end + end + + desc "stop spec_server." + task :stop do + unless File.exist?(daemonized_server_pid) + $stderr.puts "No server running." + else + $stderr.puts "Shutting down spec_server." + system("kill", "-s", "TERM", File.read(daemonized_server_pid).strip) && + File.delete(daemonized_server_pid) + end + end + + desc "reload spec_server." + task :restart do + unless File.exist?(daemonized_server_pid) + $stderr.puts "No server running." + else + $stderr.puts "Reloading down spec_server." + system("kill", "-s", "USR2", File.read(daemonized_server_pid).strip) + end + end + end +end |