Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Install RSpec

  • Loading branch information...
commit ce279190a69989d4609e345335efda945a29fe3a 1 parent 00460fc
@rafaelfranca authored
View
6 Gemfile
@@ -21,6 +21,6 @@ gem 'mysql'
# Bundle gems for certain environments:
# gem 'rspec', :group => :test
-# group :test do
-# gem 'webrat'
-# end
+group :test do
+ gem 'rspec-rails', '2.0.0.beta.8'
+end
View
2  autotest/discover.rb
@@ -0,0 +1,2 @@
+Autotest.add_discovery { "rails" }
+Autotest.add_discovery { "rspec2" }
View
6 config/initializers/rspec_generator.rb
@@ -0,0 +1,6 @@
+Secomp::Application.configure do
+ config.generators do |g|
+ g.integration_tool :rspec
+ g.test_framework :rspec
+ end
+end
View
69 lib/tasks/rspec.rake
@@ -0,0 +1,69 @@
+begin
+ require 'rspec/core'
+ require 'rspec/core/rake_task'
+rescue MissingSourceFile
+ module Rspec
+ module Core
+ class RakeTask
+ def initialize(name)
+ task name do
+ # if rspec-rails is a configured gem, this will output helpful material and exit ...
+ require File.expand_path(File.dirname(__FILE__) + "/../../config/environment")
+
+ # ... otherwise, do this:
+ raise <<-MSG
+
+#{"*" * 80}
+* You are trying to run an rspec rake task defined in
+* #{__FILE__},
+* but rspec can not be found in vendor/gems, vendor/plugins or system gems.
+#{"*" * 80}
+MSG
+ end
+ end
+ end
+ end
+ end
+end
+
+Rake.application.instance_variable_get('@tasks').delete('default')
+
+spec_prereq = Rails.root.join('config', 'database.yml').exist? ? "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)"
+Rspec::Core::RakeTask.new(:spec => spec_prereq)
+
+namespace :spec do
+ [:requests, :models, :controllers, :views, :helpers, :mailers, :lib].each do |sub|
+ desc "Run the code examples in spec/#{sub}"
+ Rspec::Core::RakeTask.new(sub => spec_prereq) do |t|
+ t.pattern = "./spec/#{sub}/**/*_spec.rb"
+ end
+ end
+
+ task :statsetup do
+ require 'rails/code_statistics'
+ ::STATS_DIRECTORIES << %w(Model\ specs spec/models) if File.exist?('spec/models')
+ ::STATS_DIRECTORIES << %w(View\ specs spec/views) if File.exist?('spec/views')
+ ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) if File.exist?('spec/controllers')
+ ::STATS_DIRECTORIES << %w(Helper\ specs spec/helpers) if File.exist?('spec/helpers')
+ ::STATS_DIRECTORIES << %w(Library\ specs spec/lib) if File.exist?('spec/lib')
+ ::STATS_DIRECTORIES << %w(Mailer\ specs spec/mailers) if File.exist?('spec/mailers')
+ ::STATS_DIRECTORIES << %w(Routing\ specs spec/routing) if File.exist?('spec/routing')
+ ::STATS_DIRECTORIES << %w(Request\ specs spec/requests) if File.exist?('spec/requests')
+ ::CodeStatistics::TEST_TYPES << "Model specs" if File.exist?('spec/models')
+ ::CodeStatistics::TEST_TYPES << "View specs" if File.exist?('spec/views')
+ ::CodeStatistics::TEST_TYPES << "Controller specs" if File.exist?('spec/controllers')
+ ::CodeStatistics::TEST_TYPES << "Helper specs" if File.exist?('spec/helpers')
+ ::CodeStatistics::TEST_TYPES << "Library specs" if File.exist?('spec/lib')
+ ::CodeStatistics::TEST_TYPES << "Mailer specs" if File.exist?('spec/mailer')
+ ::CodeStatistics::TEST_TYPES << "Routing specs" if File.exist?('spec/routing')
+ ::CodeStatistics::TEST_TYPES << "Request specs" if File.exist?('spec/requests')
+ end
+end
+
View
24 spec/spec_helper.rb
@@ -0,0 +1,24 @@
+# This file is copied to ~/spec when you run 'ruby script/generate rspec'
+# from the project root directory.
+ENV["RAILS_ENV"] ||= 'test'
+require File.dirname(__FILE__) + "/../config/environment" unless defined?(Rails)
+require 'rspec/rails'
+
+# Requires supporting files with custom matchers and macros, etc,
+# in ./support/ and its subdirectories.
+Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
+
+Rspec.configure do |config|
+ # == Mock Framework
+ #
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
+ #
+ # config.mock_with :mocha
+ # config.mock_with :flexmock
+ # config.mock_with :rr
+ config.mock_with :rspec
+
+ # If you'd prefer not to run each of your examples within a transaction,
+ # uncomment the following line.
+ # config.use_transactional_examples = false
+end
Please sign in to comment.
Something went wrong with that request. Please try again.