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)


1126
1127
1128
# File 'lib/minitest.rb', line 1126

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

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

Is this running on maglev?

Returns:

  • (Boolean)


1133
1134
1135
1136
1137
1138
# 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

#mri?(platform = RUBY_DESCRIPTION) ⇒ Boolean

Is this running on mri?

Returns:

  • (Boolean)


1143
1144
1145
# File 'lib/minitest.rb', line 1143

def mri? platform = RUBY_DESCRIPTION
  platform.start_with? "ruby"
end

#osx?(platform = RUBY_PLATFORM) ⇒ Boolean

Is this running on macOS?

Returns:

  • (Boolean)


1150
1151
1152
# File 'lib/minitest.rb', line 1150

def osx? platform = RUBY_PLATFORM
  platform.include? "darwin"
end

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

Is this running on rubinius?

Returns:

  • (Boolean)


1157
1158
1159
1160
1161
1162
# 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

#windows?(platform = RUBY_PLATFORM) ⇒ Boolean

Is this running on windows?

Returns:

  • (Boolean)


1167
1168
1169
# File 'lib/minitest.rb', line 1167

def windows? platform = RUBY_PLATFORM
  /mswin|mingw/.match? platform
end