module AppVeyor::Worker::RSpec

Public Class Methods

add(example) click to toggle source
# File lib/appveyor/worker/rspec.rb, line 26
def self.add example
  process
  examples.push example
end
examples() click to toggle source
# File lib/appveyor/worker/rspec.rb, line 22
def self.examples
  @examples ||= welcome
end
intercept!() click to toggle source
# File lib/appveyor/worker/rspec.rb, line 41
def self.intercept!
  this = self
  RSpec.configure do |config|
    config.before :each do |example|
      this.add example
    end

    config.after :all do
      this.process
    end
  end
end
process() click to toggle source
# File lib/appveyor/worker/rspec.rb, line 31
def self.process
  ex = examples
  @examples = []
  ex.each do |example|
    unless report example
      examples.push example
      end
  end
end
report(example) click to toggle source
# File lib/appveyor/worker/rspec.rb, line 7
def self.report example
  res = example.execution_result
  return unless res.status

  ::AppVeyor::Worker.test testFramework: 'RSpec',
    testName: example.full_description,
    fileName: example.location,
    outcome: ({passed: 'Passed', failed: 'Failed', pending: 'Ignored'}[res.status] || '?'),
    durationMilliseconds: res.run_time*1000,
    ErrorMessage: (example.exception.message rescue nil),
    ErrorStackTrace: (example.exception.backtrace * "\n" rescue nil)
    #   StdOut: YAML.dump('assertions'=>result.assertions),
  true
end
welcome() click to toggle source
# File lib/appveyor/worker/rspec.rb, line 2
def self.welcome
  ::AppVeyor::Worker.message "RSpec seed: #{RSpec.configuration.seed}"
  []
end