Sha256: b713a6cb27d7d31ba46f48a6ff10c8c1707b82f651a776149d01cfa56e31f43e

Contents?: true

Size: 1.11 KB

Versions: 8

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

module Datadog
  module CI
    module Contrib
      module Minitest
        module Helpers
          def self.test_suite_name(klass, method_name)
            source_location = extract_source_location_from_class(klass)&.first
            # if we are in anonymous class, fallback to the method source location
            if source_location.nil?
              source_location, = klass.instance_method(method_name).source_location
            end

            source_file_path = Pathname.new(source_location.to_s).relative_path_from(Pathname.pwd).to_s

            "#{klass.name} at #{source_file_path}"
          end

          def self.parallel?(klass)
            klass.ancestors.include?(::Minitest::Parallel::Test) ||
              (defined?(::Minitest::Queue) && ::Minitest.singleton_class.ancestors.include?(::Minitest::Queue))
          end

          def self.extract_source_location_from_class(klass)
            return [] if klass.nil? || klass.name.nil?

            klass.const_source_location(klass.name)
          rescue
            []
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
datadog-ci-1.13.0 lib/datadog/ci/contrib/minitest/helpers.rb
datadog-ci-1.12.0 lib/datadog/ci/contrib/minitest/helpers.rb
datadog-ci-1.11.0 lib/datadog/ci/contrib/minitest/helpers.rb
datadog-ci-1.10.0 lib/datadog/ci/contrib/minitest/helpers.rb
datadog-ci-1.9.0 lib/datadog/ci/contrib/minitest/helpers.rb
datadog-ci-1.8.1 lib/datadog/ci/contrib/minitest/helpers.rb
datadog-ci-1.8.0 lib/datadog/ci/contrib/minitest/helpers.rb
datadog-ci-1.7.0 lib/datadog/ci/contrib/minitest/helpers.rb