Sha256: beff93a7087e47bf287017d91a4911f22c045c5fd98f17976f7859a76966374a

Contents?: true

Size: 1.54 KB

Versions: 5

Compression:

Stored size: 1.54 KB

Contents

# frozen_string_literal: true

require_relative "../../../ext/test"
require_relative "../ext"

module Datadog
  module CI
    module Contrib
      module RSpec
        module KnapsackPro
          module Runner
            def self.included(base)
              base.prepend(InstanceMethods)
            end

            module InstanceMethods
              def knapsack__run_specs(*args)
                return super if ::RSpec.configuration.dry_run?
                return super unless datadog_configuration[:enabled]

                test_session = CI.start_test_session(
                  tags: {
                    CI::Ext::Test::TAG_FRAMEWORK => Ext::FRAMEWORK,
                    CI::Ext::Test::TAG_FRAMEWORK_VERSION => CI::Contrib::RSpec::Integration.version.to_s
                  },
                  service: datadog_configuration[:service_name]
                )

                test_module = CI.start_test_module(Ext::FRAMEWORK)

                result = super
                return result unless test_module && test_session

                if result != 0
                  test_module.failed!
                  test_session.failed!
                else
                  test_module.passed!
                  test_session.passed!
                end
                test_module.finish
                test_session.finish

                result
              end

              private

              def datadog_configuration
                Datadog.configuration.ci[:rspec]
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
datadog-ci-1.2.0 lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb
datadog-ci-1.1.0 lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb
datadog-ci-1.0.1 lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb
datadog-ci-1.0.0 lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb
datadog-ci-1.0.0.beta6 lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb