Provides a simple set of guards that you can use in your tests to skip execution if it is not applicable. These methods are mixed into Test as both instance and class methods so you can use them inside or outside of the test methods.
def test_something_for_mri skip "bug 1234" if jruby? # ... end if windows? then # ... lots of test methods ... end
Is this running on jruby?
# File minitest-5.13.0/lib/minitest.rb, line 955
def jruby? platform = RUBY_PLATFORM
"java" == platform
end
Is this running on maglev?
# File minitest-5.13.0/lib/minitest.rb, line 962
def maglev? platform = defined?(RUBY_ENGINE) && RUBY_ENGINE
where = Minitest.filter_backtrace(caller).first
where = where.split(/:in /, 2).first # clean up noise
warn "DEPRECATED: `maglev?` called from #{where}. This will fail in Minitest 6."
"maglev" == platform
end
Is this running on mri?
# File minitest-5.13.0/lib/minitest.rb, line 972
def mri? platform = RUBY_DESCRIPTION
/^ruby/ =~ platform
end
Is this running on macOS?
# File minitest-5.13.0/lib/minitest.rb, line 979
def osx? platform = RUBY_PLATFORM
/darwin/ =~ platform
end
Is this running on rubinius?
# File minitest-5.13.0/lib/minitest.rb, line 986
def rubinius? platform = defined?(RUBY_ENGINE) && RUBY_ENGINE
where = Minitest.filter_backtrace(caller).first
where = where.split(/:in /, 2).first # clean up noise
warn "DEPRECATED: `rubinius?` called from #{where}. This will fail in Minitest 6."
"rbx" == platform
end