Module: Minitest::Guard

Included in:
Test, Test
Defined in:
lib/minitest.rb

Overview

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

Instance Method Summary collapse

Instance Method Details

#jruby?(platform = RUBY_PLATFORM) ⇒ Boolean

Is this running on jruby?

Returns:

  • (Boolean)


1089
1090
1091
# File 'lib/minitest.rb', line 1089

def jruby? platform = RUBY_PLATFORM
  "java" == platform
end

#maglev?(platform = defined?(RUBY_ENGINE) && RUBY_ENGINE) ⇒ Boolean

Is this running on maglev?

Returns:

  • (Boolean)


1096
1097
1098
1099
1100
1101
# File 'lib/minitest.rb', line 1096

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

#mri?(platform = RUBY_DESCRIPTION) ⇒ Boolean

Is this running on mri?

Returns:

  • (Boolean)


1106
1107
1108
# File 'lib/minitest.rb', line 1106

def mri? platform = RUBY_DESCRIPTION
  /^ruby/ =~ platform
end

#osx?(platform = RUBY_PLATFORM) ⇒ Boolean

Is this running on macOS?

Returns:

  • (Boolean)


1113
1114
1115
# File 'lib/minitest.rb', line 1113

def osx? platform = RUBY_PLATFORM
  /darwin/ =~ platform
end

#rubinius?(platform = defined?(RUBY_ENGINE) && RUBY_ENGINE) ⇒ Boolean

Is this running on rubinius?

Returns:

  • (Boolean)


1120
1121
1122
1123
1124
1125
# File 'lib/minitest.rb', line 1120

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

#windows?(platform = RUBY_PLATFORM) ⇒ Boolean

Is this running on windows?

Returns:

  • (Boolean)


1130
1131
1132
# File 'lib/minitest.rb', line 1130

def windows? platform = RUBY_PLATFORM
  /mswin|mingw/ =~ platform
end