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.
18 19 20 21 22 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 18 def initialize(config) @config = config bind_events(config) end |
Instance Method Details
#bind_events(config) ⇒ Object
24 25 26 27 28 29 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 24 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
50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 50 def on_test_case_finished(event) return if @current_feature_span.nil? if event.result.skipped? CI::Test.skipped!(@current_feature_span) elsif event.result.ok? CI::Test.passed!(@current_feature_span) elsif event.result.failed? CI::Test.failed!(@current_feature_span) end @current_feature_span.finish end |
#on_test_case_started(event) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 31 def on_test_case_started(event) @current_feature_span = CI::Test.trace( tracer, configuration[:operation_name], { span_options: { app: Ext::APP, resource: event.test_case.name, service: configuration[:service_name] }, framework: Ext::FRAMEWORK, framework_version: Datadog::CI::Contrib::Cucumber::Integration.version.to_s, test_name: event.test_case.name, test_suite: event.test_case.location.file, test_type: Ext::TEST_TYPE } ) end |
#on_test_step_finished(event) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 72 def on_test_step_finished(event) return if @current_step_span.nil? if event.result.skipped? CI::Test.skipped!(@current_step_span, event.result.exception) elsif event.result.ok? CI::Test.passed!(@current_step_span) elsif event.result.failed? CI::Test.failed!(@current_step_span, event.result.exception) end @current_step_span.finish end |
#on_test_step_started(event) ⇒ Object
64 65 66 67 68 69 70 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 64 def on_test_step_started(event) = { resource: event.test_step.to_s, span_type: Ext::STEP_SPAN_TYPE } @current_step_span = tracer.trace(Ext::STEP_SPAN_TYPE, ) end |