lib/assert/runner.rb in assert-2.15.2 vs lib/assert/runner.rb in assert-2.16.0

- old
+ new

@@ -19,20 +19,22 @@ self.on_start self.suite.on_start self.view.on_start if self.single_test? - self.view.puts "Running test: #{self.single_test_file_line}" - elsif self.tests? - self.view.puts "Running tests in random order, " \ - "seeded with \"#{self.runner_seed}\"" + self.view.print "Running test: #{self.single_test_file_line}" + elsif self.tests_to_run? + self.view.print "Running tests in random order" end + if self.tests_to_run? + self.view.puts ", seeded with \"#{self.runner_seed}\"" + end begin self.suite.start_time = Time.now self.suite.setups.each(&:call) - tests_to_run.each do |test| + tests_to_run.tap{ self.suite.clear_tests_to_run }.delete_if do |test| self.before_test(test) self.suite.before_test(test) self.view.before_test(test) test.run do |result| self.on_result(result) @@ -40,21 +42,24 @@ self.view.on_result(result) end self.after_test(test) self.suite.after_test(test) self.view.after_test(test) + + # always delete `test` from `tests_to_run` since it has been run + true end self.suite.teardowns.each(&:call) self.suite.end_time = Time.now rescue Interrupt => err self.on_interrupt(err) self.suite.on_interrupt(err) self.view.on_interrupt(err) raise(err) end - (self.suite.count(:fail) + self.suite.count(:error)).tap do + (self.fail_result_count + self.error_result_count).tap do self.view.on_finish self.suite.on_finish self.on_finish end end @@ -74,15 +79,14 @@ def on_interrupt(err); end private def tests_to_run + srand self.runner_seed if self.single_test? - [ self.suite.tests.find{ |t| t.file_line == self.single_test_file_line } - ].compact + [self.suite.find_test_to_run(self.single_test_file_line)].compact else - srand self.runner_seed - self.suite.tests.sort.sort_by{ rand self.suite.tests.size } + self.suite.sorted_tests_to_run{ rand self.tests_to_run_count } end end end