class Minitest::Runnable
Представляет собой всё, что «можно выполнить», например, Test, Spec, Benchmark, или что-нибудь ещё, что вы можете придумать.
Подклассы этого автоматически регистрируются и доступны в Runnable.runnables.
Атрибуты
Количество утверждений, выполненных в этом запуске.
Утверждение, вызвавшее ошибку во время запуска, если таковое имеется.
Устанавливает метаданные, в основном используемые для Result.from.
Время, затраченное на запуск.
Публичные методы класса
Исходный код
# File lib/minitest.rb, line 390 def self.methods_matching re public_instance_methods(true).grep(re).map(&:to_s) end
Возвращает все методы экземпляров, соответствующие шаблону re.
Исходный код
# File lib/minitest.rb, line 405
def self.run reporter, options = {}
pos = options[:filter]
neg = options[:exclude]
pos = Regexp.new $1 if pos.kind_of?(String) && pos =~ %r%/(.*)/%
neg = Regexp.new $1 if neg.kind_of?(String) && neg =~ %r%/(.*)/%
filtered_methods = self.runnable_methods
.select { |m| !pos || pos === m || pos === "#{self}##{m}" }
.reject { |m| neg && (neg === m || neg === "#{self}##{m}") }
return if filtered_methods.empty?
t0 = name = nil
@_info_handler = lambda do
unless reporter.passed? then
warn "Current results:"
warn reporter.reporters.grep(SummaryReporter).first
end
warn "Current: %s#%s %.2fs" % [self, name, Minitest.clock_time - t0]
end
with_info_handler reporter do
filtered_methods.each do |method_name|
name = method_name
t0 = Minitest.clock_time
run_one_method self, method_name, reporter
end
end
end Отвечает за запуск всех методов, которые можно выполнить в данном классе, каждый в собственном экземпляре. Каждый экземпляр передается репортеру для записи.
Исходный код
# File lib/minitest.rb, line 445 def self.run_one_method klass, method_name, reporter reporter.prerecord klass, method_name reporter.record Minitest.run_one_method(klass, method_name) end
Выполняет один метод и заставляет репортер записывать результат. Это считалось внутренней API, но выделено из run, чтобы подклассы могли специализироваться на выполнении отдельного теста. См. Minitest::ParallelTest::ClassMethods для примера.
Исходный код
# File lib/minitest.rb, line 481 def self.runnable_methods raise NotImplementedError, "subclass responsibility" end
Каждый подкласс Runnable отвечает за переопределение этого метода, чтобы вернуть все исполняемые методы. См. методы_соответствия.
Исходный код
# File lib/minitest.rb, line 488 def self.runnables @@runnables end
Возвращает все подклассы Runnable.
Исходный код
# File lib/minitest.rb, line 454 def self.test_order :random end
Определяет порядок выполнения тестов (:случайный по умолчанию). Переопределите его или используйте удобный метод для изменения его для ваших тестов.
Публичные методы экземпляров
Исходный код
# File lib/minitest.rb, line 527
def metadata
@metadata ||= {}
end Метаданные, которые вы добавляете к результатам теста, отправляемым репортеру.
Лениво инициализируется в виде хэша для экономии памяти.
ПРИМЕЧАНИЕ: эти данные должны быть простыми (читай: маршалируемыми) данными! Хэши! Массивы! Строки!
Исходный код
# File lib/minitest.rb, line 539 def metadata? defined? @metadata end
Возвращает true, если метаданные существуют.
Исходный код
# File lib/minitest.rb, line 383 def name= o @NAME = o end
Установите имя запуска.
Исходный код
# File lib/minitest.rb, line 556 def passed? raise NotImplementedError, "subclass responsibility" end
Этот запуск прошёл успешно?
Примечание: пропущенные запуски не считаются прошедшими, но они не приводят к выходу процесса с ненулевым кодом.
Исходный код
# File lib/minitest.rb, line 565 def result_code raise NotImplementedError, "subclass responsibility" end
Возвращает строку с одним символом для печати на основе результата выполнения. Один из ".", "F", "E" или "S".
Исходный код
# File lib/minitest.rb, line 546 def run raise NotImplementedError, "subclass responsibility" end
Выполняет один метод. Должен вернуть self.
Исходный код
# File lib/minitest.rb, line 572 def skipped? raise NotImplementedError, "subclass responsibility" end
Был ли этот запуск пропущен? См. passed? для получения дополнительной информации.
© Ryan Davis, seattle.rb
Licensed under the MIT License.
https://docs.seattlerb.org/minitest/Minitest/Runnable.html