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)


1016
1017
1018
# File 'lib/minitest.rb', line 1016

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

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

Is this running on maglev?

Returns:

  • (Boolean)


1023
1024
1025
1026
1027
1028
# File 'lib/minitest.rb', line 1023

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)


1033
1034
1035
# File 'lib/minitest.rb', line 1033

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

#osx?(platform = RUBY_PLATFORM) ⇒ Boolean

Is this running on macOS?

Returns:

  • (Boolean)


1040
1041
1042
# File 'lib/minitest.rb', line 1040

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

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

Is this running on rubinius?

Returns:

  • (Boolean)


1047
1048
1049
1050
1051
1052
# File 'lib/minitest.rb', line 1047

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)


1057
1058
1059
# File 'lib/minitest.rb', line 1057

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