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)


1045
1046
1047
# File 'lib/minitest.rb', line 1045

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

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

Is this running on maglev?

Returns:

  • (Boolean)


1052
1053
1054
1055
1056
1057
# File 'lib/minitest.rb', line 1052

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)


1062
1063
1064
# File 'lib/minitest.rb', line 1062

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

#osx?(platform = RUBY_PLATFORM) ⇒ Boolean

Is this running on macOS?

Returns:

  • (Boolean)


1069
1070
1071
# File 'lib/minitest.rb', line 1069

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

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

Is this running on rubinius?

Returns:

  • (Boolean)


1076
1077
1078
1079
1080
1081
# File 'lib/minitest.rb', line 1076

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)


1086
1087
1088
# File 'lib/minitest.rb', line 1086

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