Proper setup of rspec-fire and improved rspec rake tasks
This commit is contained in:
parent
927c56c024
commit
250ed36d93
4 changed files with 35 additions and 11 deletions
6
Rakefile
6
Rakefile
|
@ -1,9 +1,3 @@
|
|||
raise 'This Rakefile is meant to be used from the dev box' unless ENV['USER'] == 'vagrant'
|
||||
|
||||
Dir['./tasks/**/*.rake'].each { |f| load f }
|
||||
|
||||
begin
|
||||
require 'rspec/core/rake_task'
|
||||
RSpec::Core::RakeTask.new(:spec)
|
||||
task :default => :coverage
|
||||
rescue LoadError; end
|
||||
|
|
|
@ -15,6 +15,11 @@ require 'rspec-spies'
|
|||
|
||||
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each { |f| require f }
|
||||
|
||||
require 'rspec/fire'
|
||||
RSpec::Fire.configure do |config|
|
||||
config.verify_constant_names = ENV['VERIFY_CONSTANT_NAMES'] == '1'
|
||||
end
|
||||
|
||||
RSpec.configure do |config|
|
||||
config.treat_symbols_as_metadata_keys_with_true_values = true
|
||||
config.run_all_when_everything_filtered = true
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
desc 'Run specs with code coverage enabled'
|
||||
task :coverage do
|
||||
ENV['COVERAGE'] = 'true'
|
||||
Rake::Task["spec"].execute
|
||||
end
|
30
tasks/spec.rake
Normal file
30
tasks/spec.rake
Normal file
|
@ -0,0 +1,30 @@
|
|||
begin
|
||||
require 'rspec/core/rake_task'
|
||||
|
||||
# TODO: add 'spec:acceptance' and 'spec:integration' then they are in place
|
||||
desc 'Run all specs'
|
||||
task :spec => ['spec:unit']
|
||||
|
||||
desc 'Default task which runs all specs with code coverage enabled'
|
||||
task :default => ['spec:set_coverage', 'spec']
|
||||
rescue LoadError; end
|
||||
|
||||
namespace :spec do
|
||||
task :set_coverage do
|
||||
ENV['COVERAGE'] = 'true'
|
||||
end
|
||||
|
||||
def types
|
||||
dirs = Dir['./spec/**/*_spec.rb'].map { |f| f.sub(/^\.\/(spec\/\w+)\/.*/, '\\1') }.uniq
|
||||
Hash[dirs.map { |d| [d.split('/').last, d] }]
|
||||
end
|
||||
types.each do |type, dir|
|
||||
desc "Run the code examples in #{dir}"
|
||||
RSpec::Core::RakeTask.new(type) do |t|
|
||||
# Tells rspec-fire to verify if constants used really exist
|
||||
ENV['VERIFY_CONSTANT_NAMES'] = '1'
|
||||
|
||||
t.pattern = "./#{dir}/**/*_spec.rb"
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue