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_run_finished(event) ⇒ Object
- #on_test_run_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 21 22 23 24 25 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 16 def initialize(config) @ast_lookup = ::Cucumber::Formatter::AstLookup.new(config) if defined?(::Cucumber::Formatter::AstLookup) @config = config @current_test_suite = nil @failed_tests_count = 0 bind_events(config) end |
Instance Method Details
#bind_events(config) ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 27 def bind_events(config) config.on_event :test_run_started, &method(:on_test_run_started) config.on_event :test_run_finished, &method(:on_test_run_finished) 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
79 80 81 82 83 84 85 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 79 def on_test_case_finished(event) test_span = CI.active_test return if test_span.nil? finish_span(test_span, event.result) @failed_tests_count += 1 if test_span.failed? end |
#on_test_case_started(event) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 55 def on_test_case_started(event) test_suite_name = test_suite_name(event.test_case) = { CI::Ext::Test::TAG_FRAMEWORK => Ext::FRAMEWORK, CI::Ext::Test::TAG_FRAMEWORK_VERSION => CI::Contrib::Cucumber::Integration.version.to_s, CI::Ext::Test::TAG_SOURCE_FILE => Utils::Git.relative_to_root(event.test_case.location.file), CI::Ext::Test::TAG_SOURCE_START => event.test_case.location.line.to_s } start_test_suite(test_suite_name) unless same_test_suite_as_current?(test_suite_name) test_span = CI.start_test( event.test_case.name, test_suite_name, tags: , service: configuration[:service_name] ) if (parameters = extract_parameters_hash(event.test_case)) test_span&.set_parameters(parameters) end end |
#on_test_run_finished(event) ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 47 def on_test_run_finished(event) if event.respond_to?(:success) finish_session(event.success) else finish_session(@failed_tests_count.zero?) end end |
#on_test_run_started(event) ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 36 def on_test_run_started(event) CI.start_test_session( tags: { CI::Ext::Test::TAG_FRAMEWORK => Ext::FRAMEWORK, CI::Ext::Test::TAG_FRAMEWORK_VERSION => CI::Contrib::Cucumber::Integration.version.to_s }, service: configuration[:service_name] ) CI.start_test_module(Ext::FRAMEWORK) end |
#on_test_step_finished(event) ⇒ Object
91 92 93 94 95 96 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 91 def on_test_step_finished(event) current_step_span = CI.active_span return if current_step_span.nil? finish_span(current_step_span, event.result) end |
#on_test_step_started(event) ⇒ Object
87 88 89 |
# File 'lib/datadog/ci/contrib/cucumber/formatter.rb', line 87 def on_test_step_started(event) CI.trace(event.test_step.to_s, type: Ext::STEP_SPAN_TYPE) end |