Module: AppVeyor::Worker::RSpec

Defined in:
lib/appveyor/worker/rspec.rb

Class Method Summary collapse

Class Method Details

.add(example) ⇒ Object



26
27
28
29
# File 'lib/appveyor/worker/rspec.rb', line 26

def self.add example
  process
  examples.push example
end

.examples ⇒ Object



22
23
24
# File 'lib/appveyor/worker/rspec.rb', line 22

def self.examples
  @examples ||= welcome
end

.intercept! ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
# 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 ⇒ Object



31
32
33
34
35
36
37
38
39
# 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) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 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 ⇒ Object



2
3
4
5
# File 'lib/appveyor/worker/rspec.rb', line 2

def self.welcome
  ::AppVeyor::Worker.message "RSpec seed: #{RSpec.configuration.seed}"
  []
end