From a829fbfb8d2291d459cab724228dbbc8ab8898ec Mon Sep 17 00:00:00 2001 From: evazion Date: Thu, 11 Jun 2020 02:16:20 -0500 Subject: [PATCH] tests: fix test coverage reporting for parallel testing. * Fix simplecov clobbering test coverage reports when using parallel tests. * Generate coverage reports by default (remove $SIMPLECOV flag). * Store coverage reports in tmp/coverage/ instead of coverage/. * Enable branch coverage. ref: github.com /colszowka/simplecov/issues/718#issuecomment-538201587 --- .gitignore | 1 - .simplecov | 6 ++++++ test/test_helper.rb | 17 ++++++++--------- 3 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 .simplecov diff --git a/.gitignore b/.gitignore index 8f4292733..2555e75e9 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,6 @@ config/database.yml config/danbooru_local_config.rb config/deploy/*.rb config/newrelic.yml -coverage/ node_modules/ log/ tmp/ diff --git a/.simplecov b/.simplecov new file mode 100644 index 000000000..521b4f9a3 --- /dev/null +++ b/.simplecov @@ -0,0 +1,6 @@ +SimpleCov.start "rails" do + add_group "Libraries", ["app/logical", "lib"] + add_group "Presenters", "app/presenters" + enable_coverage :branch + coverage_dir "tmp/coverage" +end diff --git a/test/test_helper.rb b/test/test_helper.rb index af8df8864..c3bd35cd3 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,13 +1,6 @@ ENV["RAILS_ENV"] = "test" -if ENV["SIMPLECOV"] - require 'simplecov' - SimpleCov.start 'rails' do - add_group "Libraries", ["app/logical", "lib"] - add_group "Presenters", "app/presenters" - end -end - +require 'simplecov' require File.expand_path('../config/environment', __dir__) require 'rails/test_help' require 'cache' @@ -48,8 +41,14 @@ class ActiveSupport::TestCase mock_pool_version_service! parallelize - parallelize_setup do + parallelize_setup do |worker| Rails.application.load_seed + + SimpleCov.command_name "#{SimpleCov.command_name}-#{worker}" + end + + parallelize_teardown do |worker| + SimpleCov.result end setup do