A message to print to stderr when there are failures.
Name of task.
default:
:spec
Glob pattern to match files.
default:
'spec /*_spec.rb'
Use rcov for code coverage?
Due to the many ways `rcov` can run, if this option is enabled, it is required that `require 'rspec/autorun'` appears in `spec_helper`.rb
default:
false
Command line options to pass to rcov.
default:
nil
Path to rcov.
default:
'rcov'
Command line options to pass to rspec.
default:
nil
Path to rspec
default:
'rspec'
Command line options to pass to ruby.
default:
nil
Use verbose output. If this is set to true, the task will print the executed spec command to stdout.
default:
true
# File lib/rspec/core/rake_task.rb, line 116 def initialize(*args, &task_block) setup_ivars(args) desc "Run RSpec code examples" unless ::Rake.application.last_comment task name, *args do |_, task_args| RakeFileUtils.send(:verbose, verbose) do task_block.call(*[self, task_args].slice(0, task_block.arity)) if task_block run_task verbose end end end
@deprecated Has no effect. The rake task now checks ENV instead.
# File lib/rspec/core/rake_task.rb, line 32 def gemfile=(*) RSpec.deprecate("RSpec::Core::RakeTask#gemfile=", 'ENV["BUNDLE_GEMFILE"]') end
# File lib/rspec/core/rake_task.rb, line 140 def has_files? empty = files_to_run.empty? puts "No examples matching #{pattern} could be found" if empty not empty end
# File lib/rspec/core/rake_task.rb, line 146 def run_task(verbose) files = has_files? if files command = spec_command begin puts command if verbose success = system(command) rescue puts failure_message if failure_message end raise("#{command} failed") if fail_on_error unless success end end
# File lib/rspec/core/rake_task.rb, line 129 def setup_ivars(args) @name = args.shift || :spec @rcov_opts, @ruby_opts, @rspec_opts = nil, nil, nil @warning, @rcov = false, false @verbose, @fail_on_error = true, true @rcov_path = 'rcov' @rspec_path = 'rspec' @pattern = './spec{,/*/**}/*_spec.rb' end
@deprecated Has no effect. The rake task now checks ENV instead.
# File lib/rspec/core/rake_task.rb, line 26 def skip_bundler=(*) RSpec.deprecate("RSpec::Core::RakeTask#skip_bundler=") end
@deprecated Use #rspec_opts instead.
Command line options to pass to rspec.
default:
nil
# File lib/rspec/core/rake_task.rb, line 111 def spec_opts=(opts) RSpec.deprecate('RSpec::Core::RakeTask#spec_opts=', 'rspec_opts=') @rspec_opts = opts end
@deprecated Use #ruby_opts=“-w” instead.
When true, requests that the specs be run with the warning flag set. e.g. “ruby -w”
default:
false
# File lib/rspec/core/rake_task.rb, line 44 def warning=(true_or_false) RSpec.deprecate("RSpec::Core::RakeTask#warning=", 'ruby_opts="-w"') @warning = true_or_false end
# File lib/rspec/core/rake_task.rb, line 197 def blank lambda {|s| s.nil? || s == ""} end
# File lib/rspec/core/rake_task.rb, line 172 def files_to_run if ENV['SPEC'] FileList[ ENV['SPEC'] ].sort else FileList[ pattern ].sort.map { |f| shellescape(f) } end end
# File lib/rspec/core/rake_task.rb, line 193 def runner rcov ? rcov_path : rspec_path end
# File lib/rspec/core/rake_task.rb, line 163 def shellescape(string) string.shellescape end
# File lib/rspec/core/rake_task.rb, line 180 def spec_command cmd_parts = [] cmd_parts << RUBY cmd_parts << ruby_opts cmd_parts << "-w" if @warning cmd_parts << "-S" << runner cmd_parts << "-Ispec:lib" << rcov_opts if rcov cmd_parts << files_to_run cmd_parts << "--" if rcov && rspec_opts cmd_parts << rspec_opts cmd_parts.flatten.reject(&blank).join(" ") end