diff options
author | Robert Speicher <robert@gitlab.com> | 2017-03-07 21:03:23 +0300 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2017-03-07 21:03:23 +0300 |
commit | b240d86d751890216af978f1942990201f5ccadf (patch) | |
tree | 96f8d40280b98d21205e8d611757c98b8673c68e /config | |
parent | 80898d91ecc8106c3c7f21da27a8daf8f00a3cbf (diff) | |
parent | b1116a9018e6e023f780b319b6d55cd504a578b4 (diff) |
Merge branch '29005-rspec-profiling-errors-to-warnings' into 'master'
Swallow collection errors in RspecProfiling
Closes #29005
See merge request !9765
Diffstat (limited to 'config')
-rw-r--r-- | config/initializers/rspec_profiling.rb | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/config/initializers/rspec_profiling.rb b/config/initializers/rspec_profiling.rb index 0ef9f51e5cf..ac353d14499 100644 --- a/config/initializers/rspec_profiling.rb +++ b/config/initializers/rspec_profiling.rb @@ -1,22 +1,41 @@ -module RspecProfilingConnection - def establish_connection - ::RspecProfiling::Collectors::PSQL::Result.establish_connection(ENV['RSPEC_PROFILING_POSTGRES_URL']) +module RspecProfilingExt + module PSQL + def establish_connection + ::RspecProfiling::Collectors::PSQL::Result.establish_connection(ENV['RSPEC_PROFILING_POSTGRES_URL']) + end end -end -module RspecProfilingGitBranchCi - def branch - ENV['CI_BUILD_REF_NAME'] || super + module Git + def branch + ENV['CI_BUILD_REF_NAME'] || super + end + end + + module Run + def example_finished(*args) + super + rescue => err + return if @already_logged_example_finished_error + + $stderr.puts "rspec_profiling couldn't collect an example: #{err}. Further warnings suppressed." + @already_logged_example_finished_error = true + end + + alias_method :example_passed, :example_finished + alias_method :example_failed, :example_finished end end if Rails.env.test? RspecProfiling.configure do |config| if ENV['RSPEC_PROFILING_POSTGRES_URL'] - RspecProfiling::Collectors::PSQL.prepend(RspecProfilingConnection) + RspecProfiling::Collectors::PSQL.prepend(RspecProfilingExt::PSQL) config.collector = RspecProfiling::Collectors::PSQL end end - RspecProfiling::VCS::Git.prepend(RspecProfilingGitBranchCi) if ENV.has_key?('CI') + if ENV.has_key?('CI') + RspecProfiling::VCS::Git.prepend(RspecProfilingExt::Git) + RspecProfiling::Run.prepend(RspecProfilingExt::Run) + end end |