Class: SauceTest::RSpec::Runner::SauceFormatter

Inherits:
Spec::Runner::Formatter::BaseFormatter
  • Object
show all
Defined in:
lib/sauce-test/rspec/sauce_formatter.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options, output) ⇒ SauceFormatter

Returns a new instance of SauceFormatter.



9
10
11
12
13
14
15
# File 'lib/sauce-test/rspec/sauce_formatter.rb', line 9

def initialize(options, output)
  @dry_run = !!options.dry_run
  @selenium = Selenium::Client::Driver
  @selenium.set_sauce_options(@@sauce_options) unless @dry_run
  @@report = SauceTest::Runner::Report.new
  @@report.browser = @@sauce_options.browser unless @dry_run
end

Class Method Details

.reportObject



64
65
66
# File 'lib/sauce-test/rspec/sauce_formatter.rb', line 64

def self.report
  @@report
end

.set_sauce_test_options(options) ⇒ Object



68
69
70
# File 'lib/sauce-test/rspec/sauce_formatter.rb', line 68

def self.set_sauce_test_options(options)
  @@sauce_options = options.clone
end

Instance Method Details

#dump_summary(duration, example_count, failure_count, pending_count) ⇒ Object



60
61
62
# File 'lib/sauce-test/rspec/sauce_formatter.rb', line 60

def dump_summary(duration, example_count, failure_count, pending_count)
  @@report.duration = duration
end

#example_failed(example_proxy, counter, failure) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/sauce-test/rspec/sauce_formatter.rb', line 47

def example_failed(example_proxy, counter, failure)
  failure.exception.backtrace[0] =~ /(.*):(\d+)/
  file = $1
  line = $2.to_i
  @@report.add_example(@group,
                       {'name' => example_proxy.description,
                        'status' => 'failed',
                        'job_id' => @selenium.last_session_id,
                        'message' => failure.exception.message,
                        'file' => file,
                        'line' => line})
end

#example_group_started(group_proxy) ⇒ Object



17
18
19
# File 'lib/sauce-test/rspec/sauce_formatter.rb', line 17

def example_group_started(group_proxy)
  @group = group_proxy.description
end

#example_passed(example_proxy) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/sauce-test/rspec/sauce_formatter.rb', line 39

def example_passed(example_proxy)
  @@report.add_example(@group,
                       {'name' => example_proxy.description,
                        'status' => 'passed',
                        'job_id' => @selenium.last_session_id }
                      ) unless @dry_run
end

#example_pending(example_proxy, message) ⇒ Object



32
33
34
35
36
37
# File 'lib/sauce-test/rspec/sauce_formatter.rb', line 32

def example_pending(example_proxy, message)
  @@report.add_example(@group,
                       {'name' => example_proxy.description,
                        'status' => 'pending',
                        'message' => message})
end

#example_started(example_proxy) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/sauce-test/rspec/sauce_formatter.rb', line 21

def example_started(example_proxy)
  example = example_proxy.description
  if @dry_run
    @@report.add_example(@group,
                         {'name' => example,
                          'status' => 'passed'})
  else
    @@sauce_options.job_name = @group + ' ' + example unless @dry_run
  end
end