# frozen_string_literal: true
desc 'Run chunked rspec tests on specific qty, sample: CI_JOBS=3 CI_JOB=1 rake rspec_chunked' task :rspec_chunked do
job_number, qty_jobs = (ENV['CI_JOBS'] || '1/3').split('/') logic = (ENV['CI_LOGIC'] || :file_size).to_sym load_config service = RspecChunked::ChunkedTests.new(qty_jobs.to_i, job_number.to_i, cmd: ENV['CI_CMD'], order_logic: logic) service.run copy_coverage(job_number)
end
def load_config
config_file = File.join(Dir.pwd, 'config', 'rspec_chunked.rb') load config_file if File.exist?(config_file)
end
def copy_coverage(job_number)
path = 'coverage/.resultset.json' FileUtils.cp path, "coverage/.resultset-#{job_number}.json" if File.exist?(path)
end
namespace :rspec_chunked do
desc 'Collates all result sets generated by the different test runners' task :merge_reports do require 'simplecov' SimpleCov.collate Dir['coverage/.resultset-*'] end
end