class Datadog::CI::Contrib::Cucumber::Formatter
Defines collection of instrumented Cucumber
events
Attributes
config[R]
current_feature_span[R]
current_step_span[R]
Public Class Methods
new(config)
click to toggle source
# File lib/datadog/ci/contrib/cucumber/formatter.rb, line 18 def initialize(config) @config = config bind_events(config) end
Public Instance Methods
bind_events(config)
click to toggle source
# 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)
click to toggle source
# File lib/datadog/ci/contrib/cucumber/formatter.rb, line 49 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)
click to toggle source
# 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, test_name: event.test_case.name, test_suite: event.test_case.location.file, test_type: Ext::TEST_TYPE } ) end
on_test_step_finished(event)
click to toggle source
# File lib/datadog/ci/contrib/cucumber/formatter.rb, line 71 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)
click to toggle source
# File lib/datadog/ci/contrib/cucumber/formatter.rb, line 63 def on_test_step_started(event) trace_options = { resource: event.test_step.to_s, span_type: Ext::STEP_SPAN_TYPE } @current_step_span = tracer.trace(Ext::STEP_SPAN_TYPE, trace_options) end
Private Instance Methods
configuration()
click to toggle source
# File lib/datadog/ci/contrib/cucumber/formatter.rb, line 87 def configuration Datadog.configuration[:cucumber] end
tracer()
click to toggle source
# File lib/datadog/ci/contrib/cucumber/formatter.rb, line 91 def tracer configuration[:tracer] end