File: minitest_hooks_errors_spec.rb

package info (click to toggle)
ruby-minitest-hooks 1.5.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 156 kB
  • sloc: ruby: 600; makefile: 4
file content (32 lines) | stat: -rw-r--r-- 1,102 bytes parent folder | download
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