# Installs a rake task for for running examples written using rspec. # # This file installs the ‘rake rspec’ (aliased as ‘rake spec’) as well as # extends ‘rake test’ to run spec tests, if any. It is automatically generated # by Noe from your .noespec file, and should therefore be configured there, # under the variables/rake_tasks/spec_test entry, as illustrated below: # # variables: # rake_tasks: # spec_test: # pattern: spec/*/_spec.rb # verbose: true # rspec_opts: [–color, –backtrace] # … # # If you have specific needs requiring manual intervention on this file, # don’t forget to set safe-override to false in your noe specification: # # template-info: # manifest: # tasks/spec_test.rake: # safe-override: false # # This file has been written to conform to RSpec v2.4.0. More information about # rspec and options of the rake task defined below can be found on # relishapp.com/rspec # require ‘rspec/core’ require ‘rubocop/rake_task’
RuboCop::RakeTask.new
# RSpec.configure do |c| # c.fail_fast = true # c.color = true # end
begin
require "rspec/core/rake_task" #specfiles = Dir.glob['spec/**/*_spec.rb'] specsuite = {} Dir.glob('spec/**/*_spec.rb').each do |f| File.basename(f) =~ /^([^_]+)_*/ specsuite[Regexp.last_match(1)] = [] unless specsuite[Regexp.last_match(1)] specsuite[Regexp.last_match(1)] << f end rspec_opts = [ "--color", "--format d", "--backtrace" ] unless specsuite.empty? #..................... namespace :rspec do #..................... namespace :suite do specsuite.each do |name, _files| ########### #{name} ########### if _files.count == 1 desc "Run all specs in #{name} spec suite" RSpec::Core::RakeTask.new(name.to_sym) do |t| t.pattern = "spec/**/#{name}_*spec.rb" #t.pattern = "spec/**/git_*spec.rb" t.verbose = false t.rspec_opts = rspec_opts end # task #{name} else namespace "#{name.to_sym}" do desc "Run all specs in #{name} spec suite" RSpec::Core::RakeTask.new(:all) do |t| t.pattern = "spec/**/#{name}_*spec.rb" t.verbose = false t.rspec_opts = rspec_opts end # task rspec:suite:#{name}:all _files.map { |f| File.basename(f, '_spec.rb').gsub("#{name}_", '') }.each do |subname| next if subname == name desc "Run the '#{subname}' specs in the #{name} spec suite" RSpec::Core::RakeTask.new(subname.to_sym) do |t| t.pattern = "spec/**/#{name}_#{subname}*spec.rb" t.verbose = false t.rspec_opts = rspec_opts end # task rspec:suite:#{name}:#{subname} end end # namespace #{name} end # id end end # namespace suite end # namespace rspec end desc "Run RSpec code examples '*_spec.rb' from the spec/ directory" RSpec::Core::RakeTask.new(:rspec) do |t| # Glob pattern to match files. #t.pattern = "spec/**/common_*.rb" #t.pattern = "spec/**/versioning_*spec.rb" #t.pattern = "spec/**/puppet*spec.rb" #t.pattern = "spec/**/bootstrap_spec.rb" #t.pattern = "spec/**/git*spec.rb" #t.pattern = "spec/**/error*spec.rb" #t.pattern = "spec/**/config*spec.rb" # Whether or not to fail Rake when an error occurs (typically when # examples fail). t.fail_on_error = true # A message to print to stderr when there are failures. t.failure_message = nil # Use verbose output. If this is set to true, the task will print the # executed spec command to stdout. t.verbose = true # Use rcov for code coverage? #t.rcov = false # Path to rcov. #t.rcov_path = "rcov" # Command line options to pass to rcov. See 'rcov --help' about this #t.rcov_opts = [] # Command line options to pass to ruby. See 'ruby --help' about this t.ruby_opts = [] # Path to rspec #t.rspec_path = "rspec" # Command line options to pass to rspec. See 'rspec --help' about this #t.rspec_opts = ["--color", "--backtrace"] t.rspec_opts = rspec_opts #["--color", "--format d", "--backtrace"] # "--format d", end
rescue LoadError
task :spec_test do abort 'rspec is not available. In order to run spec, you must: gem install rspec' end
ensure
task :spec => [:spec_test] task :test => [:spec_test]
end
#.….….….….…. namespace :setenv do
########### code_climate ########### #desc "Set Code Climate token to report rspec results" task :code_climate do |_t| unless FalkorLib.config[:tokens].nil? || FalkorLib.config[:tokens][:code_climate].nil? || FalkorLib.config[:tokens][:code_climate].empty? ans = ask(cyan("A Code Climate token is set - Do you want to report on Code Climate the result of the process? (y|N)"), 'No') ENV['CODECLIMATE_REPO_TOKEN'] = FalkorLib.config[:tokens][:code_climate] if ans =~ /y.*/i end end # task code_climate
end # namespace set
task :rspec => ‘setenv:code_climate’