class RRRSpec::Seedrs::RSpec::RSpecRunner

Public Instance Methods

get_step_result_line(rspec_output) click to toggle source
# File lib/rrrspec/seedrs/rspec/rspec_runner.rb, line 57
def get_step_result_line(rspec_output)
  rspec_output.lines.each_with_index do |line, line_number|
    if /(\d*) examples?, (\d*) failures?/ =~ line
      return line_number
    end
  end

  -1
end
process_result(formatter, result) click to toggle source
# File lib/rrrspec/seedrs/rspec/rspec_runner.rb, line 37
def process_result(formatter, result)
  results_line = result.lines[get_step_result_line(result)]

  failing_steps_count = failing_steps_count(results_line)
  pending_steps_count = pending_steps_count(results_line)
  total_steps_count = total_steps_count(results_line)

  (failing_steps_count + pending_steps_count).times do
    formatter.example_failed nil
  end

  (total_steps_count - failing_steps_count - pending_steps_count).times do
    formatter.example_passed nil
  end

  pending_steps_count.times do
    formatter.example_pending nil
  end
end
reset() click to toggle source
# File lib/rrrspec/seedrs/rspec/rspec_runner.rb, line 33
def reset
  @file_path = ''
end
run(*formatters) click to toggle source
# File lib/rrrspec/seedrs/rspec/rspec_runner.rb, line 13
def run(*formatters)
  status = false
  result_err = ''

  begin
    result_out = `SLAVE_NUMBER=#{ENV['SLAVE_NUMBER']} bundle exec rspec #{@file_path}`

    formatters.each do |formatter_class|
      formatter = formatter_class.new nil
      process_result(formatter, result_out)
    end

    status = true
  rescue Exception => e
    result_err = e.message
  end

  [status, result_out, result_err]
end
setup(file_path) click to toggle source
# File lib/rrrspec/seedrs/rspec/rspec_runner.rb, line 6
def setup(file_path)
  @file_path = file_path
  status = true

  [status, '', '']
end

Private Instance Methods

failing_steps_count(results_line) click to toggle source
# File lib/rrrspec/seedrs/rspec/rspec_runner.rb, line 69
def failing_steps_count(results_line)
  if results_line.match(/(\d+) failure/)
    results_line.match(/(\d+) failure/)[1].to_i
  else
    0
  end
end
pending_steps_count(results_line) click to toggle source
# File lib/rrrspec/seedrs/rspec/rspec_runner.rb, line 77
def pending_steps_count(results_line)
  if results_line.match(/(\d+) pending/)
    results_line.match(/(\d+) pending/)[1].to_i
  else
    0
  end
end
total_steps_count(results_line) click to toggle source
# File lib/rrrspec/seedrs/rspec/rspec_runner.rb, line 85
def total_steps_count(results_line)
  if results_line.match(/(\d+) example/)
    results_line.match(/(\d+) example/)[1].to_i
  else
    0
  end
end