Class: Spinach::Reporter

Inherits:
Object
  • Object
show all
Defined in:
lib/spinach/reporter.rb,
lib/spinach/reporter/stdout.rb,
lib/spinach/reporter/progress.rb,
lib/spinach/reporter/reporting.rb,
lib/spinach/reporter/failure_file.rb

Overview

Spinach reporter collects information from Runner hooks and outputs the results

Direct Known Subclasses

FailureFile, Progress, Stdout

Defined Under Namespace

Modules: Reporting Classes: FailureFile, Progress, Stdout

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Reporter

Initialize a reporter with an empty error container.



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/spinach/reporter.rb', line 10

def initialize(options = {})
  @errors = []
  @options = options
  @orderer = options[:orderer]
  @undefined_features = []
  @successful_steps = []
  @undefined_steps = []
  @failed_steps = []
  @error_steps = []
  @pending_steps = []
end

Instance Attribute Details

#current_featureObject (readonly)

A Hash with options for the reporter



24
25
26
# File 'lib/spinach/reporter.rb', line 24

def current_feature
  @current_feature
end

#current_scenarioObject (readonly)

A Hash with options for the reporter



24
25
26
# File 'lib/spinach/reporter.rb', line 24

def current_scenario
  @current_scenario
end

#error_stepsObject (readonly)

Returns the value of attribute error_steps.



26
27
28
# File 'lib/spinach/reporter.rb', line 26

def error_steps
  @error_steps
end

#failed_stepsObject (readonly)

Returns the value of attribute failed_steps.



26
27
28
# File 'lib/spinach/reporter.rb', line 26

def failed_steps
  @failed_steps
end

#optionsObject (readonly)

A Hash with options for the reporter



24
25
26
# File 'lib/spinach/reporter.rb', line 24

def options
  @options
end

#pending_stepsObject (readonly)

Returns the value of attribute pending_steps.



26
27
28
# File 'lib/spinach/reporter.rb', line 26

def pending_steps
  @pending_steps
end

#successful_stepsObject (readonly)

Returns the value of attribute successful_steps.



26
27
28
# File 'lib/spinach/reporter.rb', line 26

def successful_steps
  @successful_steps
end

#undefined_featuresObject (readonly)

Returns the value of attribute undefined_features.



26
27
28
# File 'lib/spinach/reporter.rb', line 26

def undefined_features
  @undefined_features
end

#undefined_stepsObject (readonly)

Returns the value of attribute undefined_steps.



26
27
28
# File 'lib/spinach/reporter.rb', line 26

def undefined_steps
  @undefined_steps
end

Instance Method Details

#after_feature_run(*args) ⇒ Object



56
# File 'lib/spinach/reporter.rb', line 56

def after_feature_run(*args); end

#after_run(*args) ⇒ Object



54
# File 'lib/spinach/reporter.rb', line 54

def after_run(*args); end

#after_scenario_run(*args) ⇒ Object



62
# File 'lib/spinach/reporter.rb', line 62

def after_scenario_run(*args); end

#around_scenario_run(*args) ⇒ Object



59
60
61
# File 'lib/spinach/reporter.rb', line 59

def around_scenario_run(*args)
  yield
end

#before_feature_run(*args) ⇒ Object



55
# File 'lib/spinach/reporter.rb', line 55

def before_feature_run(*args); end

#before_run(*args) ⇒ Object



53
# File 'lib/spinach/reporter.rb', line 53

def before_run(*args); end

#before_scenario_run(*args) ⇒ Object



58
# File 'lib/spinach/reporter.rb', line 58

def before_scenario_run(*args); end

#bindObject

Hooks the reporter to the runner endpoints



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/spinach/reporter.rb', line 29

def bind
  Spinach.hooks.tap do |hooks|
    hooks.before_run { |*args| before_run(*args) }
    hooks.after_run { |*args| after_run(*args) }
    hooks.before_feature { |*args| before_feature_run(*args) }
    hooks.after_feature { |*args| after_feature_run(*args) }
    hooks.on_undefined_feature { |*args| on_feature_not_found(*args) }
    hooks.before_scenario { |*args| before_scenario_run(*args) }
    hooks.around_scenario { |*args, &block| around_scenario_run(*args, &block) }
    hooks.after_scenario { |*args| after_scenario_run(*args) }
    hooks.on_successful_step { |*args| on_successful_step(*args) }
    hooks.on_undefined_step { |*args| on_undefined_step(*args) }
    hooks.on_pending_step { |*args| on_pending_step(*args) }
    hooks.on_failed_step { |*args| on_failed_step(*args) }
    hooks.on_error_step { |*args| on_error_step(*args) }
    hooks.on_skipped_step { |*args| on_skipped_step(*args) }

    hooks.before_feature { |*args| set_current_feature(*args) }
    hooks.after_feature { |*args| clear_current_feature(*args) }
    hooks.before_scenario { |*args| set_current_scenario(args.first) }
    hooks.after_scenario { |*args| clear_current_scenario(args.first) }
  end
end

#clear_current_feature(*args) ⇒ Object

Clears this current feature



79
80
81
# File 'lib/spinach/reporter.rb', line 79

def clear_current_feature(*args)
  @current_feature = nil
end

#clear_current_scenario(*args) ⇒ Object

Clears this current scenario



92
93
94
# File 'lib/spinach/reporter.rb', line 92

def clear_current_scenario(*args)
  @current_scenario = nil
end

#on_error_step(*args) ⇒ Object



65
# File 'lib/spinach/reporter.rb', line 65

def on_error_step(*args); end

#on_failed_step(*args) ⇒ Object



64
# File 'lib/spinach/reporter.rb', line 64

def on_failed_step(*args); end

#on_feature_not_found(*args) ⇒ Object



57
# File 'lib/spinach/reporter.rb', line 57

def on_feature_not_found(*args); end

#on_pending_step(*args) ⇒ Object



67
# File 'lib/spinach/reporter.rb', line 67

def on_pending_step(*args); end

#on_skipped_step(*args) ⇒ Object



68
# File 'lib/spinach/reporter.rb', line 68

def on_skipped_step(*args); end

#on_successful_step(*args) ⇒ Object



63
# File 'lib/spinach/reporter.rb', line 63

def on_successful_step(*args); end

#on_undefined_step(*args) ⇒ Object



66
# File 'lib/spinach/reporter.rb', line 66

def on_undefined_step(*args); end

#set_current_feature(feature) ⇒ Object

Stores the current feature

Parameters:



74
75
76
# File 'lib/spinach/reporter.rb', line 74

def set_current_feature(feature)
  @current_feature = feature
end

#set_current_scenario(scenario) ⇒ Object

Stores the current scenario

Parameters:

  • the (Hash)

    data for this scenario



87
88
89
# File 'lib/spinach/reporter.rb', line 87

def set_current_scenario(scenario)
  @current_scenario = scenario
end