1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
require './spec/helper'
require 'minitest/hooks/default'
require 'open3'
RUBY = ENV['RUBY'] || 'ruby'
describe 'Minitest::Hooks error handling' do
def self.run_test(desc, runs, errors)
it "should handle errors in #{desc}" do
ENV['MINITEST_HOOKS_ERRORS'] = desc
Open3.popen3(RUBY, "spec/errors/example.rb", "-v") do |_, o, e, w|
output = o.read
output.must_match(/#{runs} runs, 0 assertions, 0 failures, #{errors} errors, 0 skips/)
output.must_match(/result to_s: ".*?Minitest::Hooks error handling#\w+.*?spec\/errors\/example\.rb:\d+/)
output.must_match(/result source_location: \["(unknown|.+?\.rb)", -?\d+\]/)
output = e.read
output.gsub!(/Picked up _JAVA_OPTIONS: [^\n]+\n/, '')
output.must_equal ''
w.value.exitstatus.wont_equal 0 if w
end
end
end
run_test "before-all", 1, 1
run_test "before", 3, 3
run_test "after", 3, 3
run_test "after-all", 4, 1
run_test "around-before", 1, 1
run_test "around-after", 1, 1
run_test "around-all-before", 1, 1
run_test "around-all-after", 4, 1
end
|