класс Minitest::Test
Создавайте собственные тесты, наследуя класс Test. Обычно для каждого класса реализации следует создавать отдельный подкласс Test.
Общедоступные методы класса
# File lib/minitest/test.rb, line 31
def self.i_suck_and_my_tests_are_order_dependent!
class << self
undef_method :run_order if method_defined? :run_order
define_method :run_order do :alpha end
end
end Вызовите этот метод в начале тестов, если вам непременно нужно, чтобы тесты выполнялись в заданном порядке. Тем самым вы признаёте, что вы неудачник, а ваши тесты слабы.
# File lib/minitest/test.rb, line 44 def self.make_my_diffs_pretty! require "pp" define_method :mu_pp, &:pretty_inspect end
Для этого Test используйте pretty_inspect при формировании различий, чтобы различия в assert_equal содержали больше подробностей. ПРИМЕЧАНИЕ: это значительно медленнее обычного inspect, но гораздо удобнее для сложных объектов.
# File lib/minitest/test.rb, line 56 def self.parallelize_me! return unless Minitest.parallel_executor include Minitest::Parallel::Test extend Minitest::Parallel::Test::ClassMethods end
Вызовите этот метод в начале тестов (внутри подкласса Minitest::Test или блока describe), если хотите выполнять тесты параллельно. Тем самым вы признаёте, что вы круты, а ваши тесты великолепны.
# File lib/minitest/test.rb, line 67
def self.runnable_methods
methods = methods_matching(/^test_/)
case self.run_order
when :random, :parallel then
srand Minitest.seed
methods.sort.shuffle
when :alpha, :sorted then
methods.sort
else
raise "Unknown_order: %p" % [self.run_order]
end
end Возвращает все методы экземпляра, имена которых начинаются с «test_». В зависимости от run_order методы сортируются, запускаются в случайном порядке (по умолчанию) или выполняются параллельно.
Общедоступные методы экземпляра
# File lib/minitest/test.rb, line 84
def run
time_it do
capture_exceptions do
SETUP_METHODS.each do |hook|
self.send hook
end
self.send self.name
end
TEARDOWN_METHODS.each do |hook|
capture_exceptions do
self.send hook
end
end
end
Result.from self # per contract
end Запускает один тест с хуками настройки и очистки.
© Ryan Davis, seattle.rb
Licensed under the MIT License.