module Datadog::CI::Test

Common behavior for CI tests

Public Class Methods

failed!(span, exception = nil) click to toggle source
# File lib/datadog/ci/test.rb, line 58
def self.failed!(span, exception = nil)
  span.status = 1
  span.set_tag(Ext::Test::TAG_STATUS, Ext::Test::Status::FAIL)
  span.set_error(exception) unless exception.nil?
end
passed!(span) click to toggle source
# File lib/datadog/ci/test.rb, line 54
def self.passed!(span)
  span.set_tag(Ext::Test::TAG_STATUS, Ext::Test::Status::PASS)
end
set_tags!(span, tags = {}) click to toggle source

Adds tags to a CI test span.

# File lib/datadog/ci/test.rb, line 34
def self.set_tags!(span, tags = {})
  tags ||= {}

  # Set default tags
  span.context.origin = Ext::Test::CONTEXT_ORIGIN if span.context
  Datadog::Contrib::Analytics.set_measured(span)
  span.set_tag(Ext::Test::TAG_SPAN_KIND, Ext::AppTypes::TEST)
  Ext::Environment.tags(ENV).each { |k, v| span.set_tag(k, v) }

  # Set contextual tags
  span.set_tag(Ext::Test::TAG_FRAMEWORK, tags[:framework]) if tags[:framework]
  span.set_tag(Ext::Test::TAG_NAME, tags[:test_name]) if tags[:test_name]
  span.set_tag(Ext::Test::TAG_SUITE, tags[:test_suite]) if tags[:test_suite]
  span.set_tag(Ext::Test::TAG_TYPE, tags[:test_type]) if tags[:test_type]

  set_environment_runtime_tags!(span)

  span
end
skipped!(span, exception = nil) click to toggle source
# File lib/datadog/ci/test.rb, line 64
def self.skipped!(span, exception = nil)
  span.set_tag(Ext::Test::TAG_STATUS, Ext::Test::Status::SKIP)
  span.set_error(exception) unless exception.nil?
end
trace(tracer, span_name, options = {}) { |span| ... } click to toggle source

Creates a new span for a CI test

# File lib/datadog/ci/test.rb, line 16
def self.trace(tracer, span_name, options = {})
  span_options = {
    span_type: Ext::AppTypes::TEST
  }.merge(options[:span_options] || {})

  if block_given?
    tracer.trace(span_name, span_options) do |span|
      set_tags!(span, options)
      yield(span)
    end
  else
    span = tracer.trace(span_name, span_options)
    set_tags!(span, options)
    span
  end
end

Private Class Methods

set_environment_runtime_tags!(span) click to toggle source
# File lib/datadog/ci/test.rb, line 69
                     def self.set_environment_runtime_tags!(span)
  span.set_tag(Ext::Test::TAG_OS_ARCHITECTURE, ::RbConfig::CONFIG['host_cpu'])
  span.set_tag(Ext::Test::TAG_OS_PLATFORM, ::RbConfig::CONFIG['host_os'])
  span.set_tag(Ext::Test::TAG_RUNTIME_NAME, Core::Environment::Ext::LANG_ENGINE)
  span.set_tag(Ext::Test::TAG_RUNTIME_VERSION, Core::Environment::Ext::ENGINE_VERSION)
end