From e1f8f6b3dab7ceeabad7b26de84e473b91bb88d5 Mon Sep 17 00:00:00 2001 From: Sebastien Savater Date: Thu, 11 Apr 2024 15:11:57 +0200 Subject: [PATCH] Refactor Runner to forward more options to Reporter --- lib/turbo_tests/reporter.rb | 8 +++++--- lib/turbo_tests/runner.rb | 28 ++++++++-------------------- 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/lib/turbo_tests/reporter.rb b/lib/turbo_tests/reporter.rb index 4996dca..4e79b5a 100644 --- a/lib/turbo_tests/reporter.rb +++ b/lib/turbo_tests/reporter.rb @@ -4,8 +4,8 @@ module TurboTests class Reporter attr_writer :load_time - def self.from_config(formatter_config, start_time) - reporter = new(start_time) + def self.from_config(formatter_config, start_time, files, parallel_options) + reporter = new(start_time, files, parallel_options) formatter_config.each do |config| name, outputs = config.values_at(:name, :outputs) @@ -23,7 +23,7 @@ def self.from_config(formatter_config, start_time) attr_reader :pending_examples attr_reader :failed_examples - def initialize(start_time) + def initialize(start_time, files, parallel_options) @formatters = [] @pending_examples = [] @failed_examples = [] @@ -32,6 +32,8 @@ def initialize(start_time) @start_time = start_time @load_time = 0 @errors_outside_of_examples_count = 0 + @files = files + @parallel_options = parallel_options end def add(name, outputs) diff --git a/lib/turbo_tests/runner.rb b/lib/turbo_tests/runner.rb index 51caf4e..ab54184 100644 --- a/lib/turbo_tests/runner.rb +++ b/lib/turbo_tests/runner.rb @@ -10,17 +10,9 @@ class Runner using CoreExtensions def self.run(opts = {}) - files = opts[:files] - formatters = opts[:formatters] - tags = opts[:tags] - parallel_options = opts[:parallel_options] - # SEE: https://bit.ly/2NP87Cz start_time = opts.fetch(:start_time) { Process.clock_gettime(Process::CLOCK_MONOTONIC) } - runtime_log = opts.fetch(:runtime_log, nil) verbose = opts.fetch(:verbose, false) - fail_fast = opts.fetch(:fail_fast, nil) - count = opts.fetch(:count, nil) seed = opts.fetch(:seed) || rand(0xFFFF).to_s seed_used = !opts[:seed].nil? @@ -28,28 +20,22 @@ def self.run(opts = {}) STDERR.puts "VERBOSE" end - reporter = Reporter.from_config(formatters, start_time) - new( - reporter: reporter, - files: files, - tags: tags, - runtime_log: runtime_log, + **opts, + start_time: start_time, verbose: verbose, - fail_fast: fail_fast, - count: count, seed: seed, - seed_used: seed_used, - parallel_options: parallel_options + seed_used: seed_used ).run end - def initialize(opts) - @reporter = opts[:reporter] + def initialize(**opts) + @formatters = opts[:formatters] @files = opts[:files] @tags = opts[:tags] @verbose = opts[:verbose] @fail_fast = opts[:fail_fast] + @start_time = opts[:start_time] @count = opts[:count] @load_time = 0 @load_count = 0 @@ -67,6 +53,8 @@ def initialize(opts) end def run + @reporter = Reporter.from_config(@formatters, @start_time, @files, @parallel_options) + @num_processes = [ ParallelTests.determine_number_of_processes(@count), ParallelTests::RSpec::Runner.tests_with_size(@files, {}).size