class Petitest::TestRunner
Attributes
error[RW]
@return [StandardError, nil]
finished_at[RW]
@return [Time, nil]
started_at[RW]
@return [Time, nil]
test[R]
@return [Petitest::Test]
test_group[R]
@return [Petitest::TestGroup]
test_method_name[R]
@return [Symbol]
Public Class Methods
new( test:, test_group:, test_method_name: )
click to toggle source
@param test [Petitest::Test] @param test_group
[Petitest::TestGroup] @param test_method_name
[Symbol]
# File lib/petitest/test_runner.rb, line 24 def initialize( test:, test_group:, test_method_name: ) @duration = nil @processed = false @test = test @test_group = test_group @test_method_name = test_method_name end
Public Instance Methods
backtrace()
click to toggle source
@return [Array<String>, nil]
# File lib/petitest/test_runner.rb, line 37 def backtrace if error error.backtrace end end
description()
click to toggle source
@return [String]
# File lib/petitest/test_runner.rb, line 44 def description test.class.description_by_method_name[test_method_name] || "##{test_method_name}" end
error_class_name()
click to toggle source
@return [String, nil]
# File lib/petitest/test_runner.rb, line 57 def error_class_name if error error.class.to_s end end
error_message()
click to toggle source
@return [String, nil]
# File lib/petitest/test_runner.rb, line 64 def error_message if error error.to_s end end
failed?()
click to toggle source
@return [Boolean]
# File lib/petitest/test_runner.rb, line 71 def failed? processed? && !skipped? && !error.nil? end
filtered_backtrace()
click to toggle source
@return [Array<String>, nil]
# File lib/petitest/test_runner.rb, line 76 def filtered_backtrace @filtered_backtrace ||= begin path = ::File.expand_path("../test_group.rb", __FILE__) backtrace.reverse_each.each_with_object([]) do |line, lines| if line.start_with?(path) break lines end unless ::Petitest.configuration.backtrace_filters.any? { |filter| filter === line } lines << line end end.reverse end end
full_description()
click to toggle source
@return [String]
# File lib/petitest/test_runner.rb, line 49 def full_description [ test_group.full_description, description, ].join(" ") end
inspect()
click to toggle source
@note Override
# File lib/petitest/test_runner.rb, line 91 def inspect "#<#{self.class}>" end
passed?()
click to toggle source
@return [Boolean]
# File lib/petitest/test_runner.rb, line 96 def passed? processed? && !skipped? && !failed? end
processed?()
click to toggle source
@return [Boolean]
# File lib/petitest/test_runner.rb, line 101 def processed? @processed end
run()
click to toggle source
# File lib/petitest/test_runner.rb, line 105 def run self.started_at = ::Time.now test.send(test_method_name) true rescue => error self.error = error false ensure @finished_at = ::Time.now @processed = true end
skipped?()
click to toggle source
@return [Boolean]
# File lib/petitest/test_runner.rb, line 118 def skipped? processed? && error.is_a?(::Petitest::AssertionSkipError) end
test_method()
click to toggle source
@return [Petitest::TestMethod]
# File lib/petitest/test_runner.rb, line 123 def test_method @test_method ||= begin source_location = test.public_method(test_method_name).source_location ::Petitest::TestMethod.new( line_number: source_location[0], method_name: test_method_name, path: source_location[1], ) end end