Class: Datadog::CI::Contrib::Cucumber::Formatter
- Inherits:
-
Object
- Object
- Datadog::CI::Contrib::Cucumber::Formatter
- Defined in:
- lib/datadog/ci/contrib/cucumber/formatter.rb
Overview
Defines collection of instrumented Cucumber events
Instance Method Summary collapse
- #bind_events(config) ⇒ Object
-
#initialize(config) ⇒ Formatter
constructor
A new instance of Formatter.
- #on_test_case_finished(event) ⇒ Object
- #on_test_case_started(event) ⇒ Object
- #on_test_step_finished(event) ⇒ Object
- #on_test_step_started(event) ⇒ Object
Constructor Details
#initialize(config) ⇒ Formatter
Returns a new instance of Formatter.
16 17 18 19 20 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 16 def initialize(config) @config = config bind_events(config) end |
Instance Method Details
#bind_events(config) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 22 def bind_events(config) config.on_event :test_case_started, &method(:on_test_case_started) config.on_event :test_case_finished, &method(:on_test_case_finished) config.on_event :test_step_started, &method(:on_test_step_started) config.on_event :test_step_finished, &method(:on_test_step_finished) end |
#on_test_case_finished(event) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 43 def on_test_case_finished(event) test_span = CI.active_test return if test_span.nil? if event.result.skipped? test_span.skipped! elsif event.result.ok? test_span.passed! elsif event.result.failed? test_span.failed! end test_span.finish end |
#on_test_case_started(event) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 29 def on_test_case_started(event) CI.start_test( event.test_case.name, tags: { CI::Ext::Test::TAG_FRAMEWORK => Ext::FRAMEWORK, CI::Ext::Test::TAG_FRAMEWORK_VERSION => CI::Contrib::Cucumber::Integration.version.to_s, CI::Ext::Test::TAG_TYPE => Ext::TEST_TYPE, CI::Ext::Test::TAG_SUITE => event.test_case.location.file }, service_name: configuration[:service_name], operation_name: configuration[:operation_name] ) end |
#on_test_step_finished(event) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 62 def on_test_step_finished(event) current_step_span = CI.active_span(Ext::STEP_SPAN_TYPE) return if current_step_span.nil? if event.result.skipped? current_step_span.skipped! elsif event.result.ok? current_step_span.passed! elsif event.result.failed? current_step_span.failed!(exception: event.result.exception) end current_step_span.finish end |
#on_test_step_started(event) ⇒ Object
58 59 60 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 58 def on_test_step_started(event) CI.trace(Ext::STEP_SPAN_TYPE, event.test_step.to_s) end |