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'
|
raise 'This Rakefile is meant to be used from the dev box' unless ENV['USER'] == 'vagrant'
|
||||||
|
|
||||||
Dir['./tasks/**/*.rake'].each { |f| load f }
|
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 }
|
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|
|
RSpec.configure do |config|
|
||||||
config.treat_symbols_as_metadata_keys_with_true_values = true
|
config.treat_symbols_as_metadata_keys_with_true_values = true
|
||||||
config.run_all_when_everything_filtered = 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