class RRRSpec::Cucumber2::CucumberRunner

Public Instance Methods

process_result(formatter, result) click to toggle source
# File lib/rrrspec/cucumber2/cucumber_runner.rb, line 36
def process_result(formatter, result)
  penultimate_idx = result.lines.count - 2
  penultimate_line = result.lines[penultimate_idx]

  if penultimate_line.match(/(\d+) failed/)
    n = penultimate_line.match(/(\d+) failed/)[1].to_i
    (1..n).each { formatter.example_failed nil }
  end

  if penultimate_line.match(/(\d+) skipped/)
    n = penultimate_line.match(/(\d+) skipped/)[1].to_i
    (1..n).each { formatter.example_pending nil}
  end

  if penultimate_line.match(/(\d+) passed/)
    n = penultimate_line.match(/(\d+) passed/)[1].to_i
    (1..n).each { formatter.example_passed nil}
  end
end
reset() click to toggle source
# File lib/rrrspec/cucumber2/cucumber_runner.rb, line 32
def reset
  @file_path = ''
end
run(*formatters) click to toggle source
# File lib/rrrspec/cucumber2/cucumber_runner.rb, line 12
def run(*formatters)
  status = false
  result_err = ''

  begin
    result_out = `SLAVE_NUMBER=#{ENV['SLAVE_NUMBER']} bundle exec cucumber #{@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/cucumber2/cucumber_runner.rb, line 5
def setup(file_path)
  @file_path = file_path
  status = true

  [status, '', '']
end