diff --git a/Gemfile.lock b/Gemfile.lock index a25b383..651b743 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,7 +2,6 @@ PATH remote: . specs: buildkite-test_collector (2.4.0) - activesupport (>= 4.2) GEM remote: https://rubygems.org/ @@ -38,6 +37,7 @@ PLATFORMS ruby DEPENDENCIES + activesupport (>= 4.2) buildkite-test_collector! rake (~> 13.0) rspec (~> 3.0) diff --git a/buildkite-test_collector.gemspec b/buildkite-test_collector.gemspec index c4d98d2..2c27b19 100644 --- a/buildkite-test_collector.gemspec +++ b/buildkite-test_collector.gemspec @@ -24,8 +24,7 @@ Gem::Specification.new do |spec| spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0") - spec.add_dependency "activesupport", ">= 4.2" - + spec.add_development_dependency "activesupport", ">= 4.2" spec.add_development_dependency "rspec-core", '~> 3.10' spec.add_development_dependency "rspec-expectations", '~> 3.10' end diff --git a/lib/buildkite/test_collector.rb b/lib/buildkite/test_collector.rb index 7abd033..751bc86 100644 --- a/lib/buildkite/test_collector.rb +++ b/lib/buildkite/test_collector.rb @@ -8,14 +8,11 @@ module TestCollector require "json" require "logger" require "net/http" +require "openssl" require "time" require "timeout" require "tmpdir" -require "active_support/core_ext/object/blank" -require "active_support/core_ext/hash/indifferent_access" -require "active_support/notifications" - require_relative "test_collector/version" require_relative "test_collector/error" require_relative "test_collector/ci" @@ -72,6 +69,10 @@ def self.enable_tracing! Buildkite::TestCollector::Network.configure Buildkite::TestCollector::Object.configure + return unless defined?(ActiveSupport) + + require "active_support/notifications" + ActiveSupport::Notifications.subscribe("sql.active_record") do |name, start, finish, id, payload| Buildkite::TestCollector::Uploader.tracer&.backfill(:sql, finish - start, **{ query: payload[:sql] }) end diff --git a/lib/buildkite/test_collector/minitest_plugin/trace.rb b/lib/buildkite/test_collector/minitest_plugin/trace.rb index c0e53e3..e474bd6 100644 --- a/lib/buildkite/test_collector/minitest_plugin/trace.rb +++ b/lib/buildkite/test_collector/minitest_plugin/trace.rb @@ -38,7 +38,7 @@ def as_hash failure_reason: failure_reason, failure_expanded: failure_expanded, history: history, - ).with_indifferent_access.select { |_, value| !value.nil? } + ).select { |_, value| !value.nil? } end private diff --git a/lib/buildkite/test_collector/rspec_plugin/reporter.rb b/lib/buildkite/test_collector/rspec_plugin/reporter.rb index 5860bcf..609548b 100644 --- a/lib/buildkite/test_collector/rspec_plugin/reporter.rb +++ b/lib/buildkite/test_collector/rspec_plugin/reporter.rb @@ -40,6 +40,10 @@ def dump_summary(_notification) RSpec::Core::MultipleExceptionError ] + def blank?(string) + string.nil? || string.strip.empty? + end + def failure_info(notification) failure_expanded = [] @@ -73,9 +77,9 @@ def failure_info(notification) def format_message_lines(message_lines) message_lines.map! { |l| strip_diff_colors(l) } # the first line is sometimes blank, depending on the error reported - message_lines.shift if message_lines.first.blank? + message_lines.shift if blank?(message_lines.first) # the last line is sometimes blank, depending on the error reported - message_lines.pop if message_lines.last.blank? + message_lines.pop if blank?(message_lines.last) message_lines end diff --git a/lib/buildkite/test_collector/rspec_plugin/trace.rb b/lib/buildkite/test_collector/rspec_plugin/trace.rb index 3a9b755..55415c5 100644 --- a/lib/buildkite/test_collector/rspec_plugin/trace.rb +++ b/lib/buildkite/test_collector/rspec_plugin/trace.rb @@ -32,7 +32,7 @@ def as_hash failure_reason: failure_reason, failure_expanded: failure_expanded, history: history, - ).with_indifferent_access.select { |_, value| !value.nil? } + ).select { |_, value| !value.nil? } end private @@ -60,7 +60,7 @@ def file_name end def shared_example? - example.metadata[:shared_group_inclusion_backtrace].any? + !example.metadata[:shared_group_inclusion_backtrace].empty? end def shared_example_call_location diff --git a/lib/buildkite/test_collector/test_links_plugin/formatter.rb b/lib/buildkite/test_collector/test_links_plugin/formatter.rb index a3a4646..c6e9349 100644 --- a/lib/buildkite/test_collector/test_links_plugin/formatter.rb +++ b/lib/buildkite/test_collector/test_links_plugin/formatter.rb @@ -10,7 +10,7 @@ def initialize(output) def dump_failures(notification) # Do not display summary if no failed examples - return unless notification.failed_examples.present? + return if notification.failed_examples.empty? # Check if a Test Analytics token is set return unless Buildkite::TestCollector.api_token diff --git a/lib/buildkite/test_collector/tracer.rb b/lib/buildkite/test_collector/tracer.rb index c41a14a..bc4d3ed 100644 --- a/lib/buildkite/test_collector/tracer.rb +++ b/lib/buildkite/test_collector/tracer.rb @@ -43,7 +43,7 @@ def as_hash duration: end_at - start_at, detail: detail, children: children.map(&:as_hash), - }.with_indifferent_access + } end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index aae93ad..69fa230 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require "buildkite/test_collector" +require "active_support/notifications" Dir["spec/support/**/*.rb"].each { |f| require File.expand_path(f) }