| Class | Autotest::Rspec |
| In: |
lib/autotest/rspec.rb
|
| Parent: | Autotest |
# File lib/autotest/rspec.rb, line 64
64: def add_options_if_present
65: File.exist?("spec/spec.opts") ? "-O spec/spec.opts " : ""
66: end
# File lib/autotest/rspec.rb, line 33
33: def consolidate_failures(failed)
34: filters = Hash.new { |h,k| h[k] = [] }
35: failed.each do |spec, failed_trace|
36: @files.keys.select{|f| f =~ /spec\//}.each do |f|
37: if failed_trace =~ Regexp.new(f)
38: filters[f] << spec
39: break
40: end
41: end
42: end
43: return filters
44: end
# File lib/autotest/rspec.rb, line 22
22: def handle_results(results)
23: failed = results.scan(/^\d+\)\n(?:\e\[\d*m)?(?:.*?Error in )?'([^\n]*)'(?: FAILED)?(?:\e\[\d*m)?\n(.*?)\n\n/m)
24: @files_to_test = consolidate_failures failed
25: unless @files_to_test.empty? then
26: hook :red
27: else
28: hook :green
29: end unless $TESTING
30: @tainted = true unless @files_to_test.empty?
31: end
# File lib/autotest/rspec.rb, line 46
46: def make_test_cmd(files_to_test)
47: cmds = []
48: full, partial = files_to_test.partition { |k,v| v.empty? }
49:
50: unless full.empty? then
51: files = full.map {|k,v| k}.flatten.join(' ')
52: cmds << "#{@spec_command} #{add_options_if_present}#{files}"
53: end
54:
55: partial.each do |f, methods|
56: cmds.push(*methods.map { |meth|
57: "#{@spec_command} #{add_options_if_present} #{f}"
58: })
59: end
60:
61: return cmds.join('; ')
62: end