module Minitest::Guard

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

Public Instance Methods

Is this running on jruby?

# File lib/minitest.rb, line 1126
def jruby? platform = RUBY_PLATFORM
  "java" == platform
end

Is this running on maglev?

# File lib/minitest.rb, line 1133
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 lib/minitest.rb, line 1143
def mri? platform = RUBY_DESCRIPTION
  platform.start_with? "ruby"
end

Is this running on macOS?

# File lib/minitest.rb, line 1150
def osx? platform = RUBY_PLATFORM
  platform.include? "darwin"
end

Is this running on rubinius?

# File lib/minitest.rb, line 1157
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

Is this running on windows?

# File lib/minitest.rb, line 1167
def windows? platform = RUBY_PLATFORM
  /mswin|mingw/.match? platform
end