Project

General

Profile

Download (1.1 KB) Statistics
| Branch: | Tag: | Revision:
require 'ci/reporter/minitest'

module ForemanMiniTestRunner
class Unit < CI::Reporter::Runner
def _run_suites(suites, type)
suites.each do |suite|
next unless type == :test
next unless suite.respond_to? "test_methods"
next unless Foreman::Plugin.tests_to_skip.keys.include?(suite.to_s)

# Extend test_methods to filter out skipped tests
class << suite
alias_method :test_methods_without_filtering, :test_methods
def test_methods
test_methods_without_filtering.reject do |test|
unless Foreman::Plugin.tests_to_skip[self.to_s].nil?
Foreman::Plugin.tests_to_skip[self.to_s].detect do |string|
# Use a substring match, as test => "test_0010_foo" and string => "foo"
if test[string]
puts "skipping #{self}##{test}"
string
end
end
end
end
end
end
end

super(suites, type)
end
end
end

MiniTest::Unit.runner = ForemanMiniTestRunner::Unit.new
(3-3/3)