Skip to content

Instantly share code, notes, and snippets.

@chrisroos
Last active July 12, 2021 16:36
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save chrisroos/209a6bd45c6f1cd36d3516d99879e680 to your computer and use it in GitHub Desktop.
Save chrisroos/209a6bd45c6f1cd36d3516d99879e680 to your computer and use it in GitHub Desktop.
Exploring how to run specific tests using minitest

Hopefully this'll help me remember how to run individual tests using minitest.

Running all tests

$ ruby mini-test-name-matching.rb --verbose --seed 1
Run options: --verbose --seed 1

# Running:

TestNamesWithMiniTestAndShoulda#test_: NamesWithMiniAndShoulda should test_bar_1.  = 0.00 s = .
TestNamesWithMiniTestAndShoulda#test_: NamesWithMiniAndShoulda should test_bar_2.  = 0.00 s = .
TestNamesWithMiniTestAndShoulda#test_: NamesWithMiniAndShoulda should test_foo_1.  = 0.00 s = .
TestNamesWithMiniTestAndShoulda#test_: NamesWithMiniAndShoulda should test_foo_2.  = 0.00 s = .
TestNamesWithMiniTestAndShoulda#test_: example-context should test_bar_1.  = 0.00 s = .
TestNamesWithMiniTestAndShoulda#test_: example-context should test_bar_2.  = 0.00 s = .
TestNamesWithMiniTestAndShoulda#test_: example-context should test_foo_1.  = 0.00 s = .
TestNamesWithMiniTestAndShoulda#test_: example-context should test_foo_2.  = 0.00 s = .
TestNamesWithMiniTest#test_bar_1 = 0.00 s = .
TestNamesWithMiniTest#test_bar_2 = 0.00 s = .
TestNamesWithMiniTest#test_foo_1 = 0.00 s = .
TestNamesWithMiniTest#test_foo_2 = 0.00 s = .

Finished in 0.002727s, 4400.7773 runs/s, 4400.7773 assertions/s.

12 runs, 12 assertions, 0 failures, 0 errors, 0 skips

Running single standard test

$ ruby mini-test-name-matching.rb --verbose --seed 1 \
--name "TestNamesWithMiniTest#test_bar_1"
Run options: --verbose --seed 1 --name TestNamesWithMiniTest#test_bar_1

# Running:

TestNamesWithMiniTest#test_bar_1 = 0.00 s = .

Finished in 0.001402s, 713.2530 runs/s, 713.2530 assertions/s.

1 runs, 1 assertions, 0 failures, 0 errors, 0 skips

Running single shoulda test

Note the additional space required at the end of the test name.

$ ruby mini-test-name-matching.rb --verbose --seed 1 \
--name "TestNamesWithMiniTestAndShoulda#test_: NamesWithMiniAndShoulda should test_bar_1. "
Run options: --verbose --seed 1 --name "TestNamesWithMiniTestAndShoulda#test_: NamesWithMiniAndShoulda should test_bar_1. "

# Running:

TestNamesWithMiniTestAndShoulda#test_: NamesWithMiniAndShoulda should test_bar_1.  = 0.00 s = .

Finished in 0.001786s, 559.9988 runs/s, 559.9988 assertions/s.

1 runs, 1 assertions, 0 failures, 0 errors, 0 skips

Running all tests matching 'foo_1'

$ ruby mini-test-name-matching.rb --verbose --seed 1 \
--name /foo_1/
Run options: --verbose --seed 1 --name /foo_1/

# Running:

TestNamesWithMiniTestAndShoulda#test_: NamesWithMiniAndShoulda should test_foo_1.  = 0.00 s = .
TestNamesWithMiniTestAndShoulda#test_: example-context should test_foo_1.  = 0.00 s = .
TestNamesWithMiniTest#test_foo_1 = 0.00 s = .

Finished in 0.001474s, 2035.0352 runs/s, 2035.0352 assertions/s.

3 runs, 3 assertions, 0 failures, 0 errors, 0 skips

Running all tests matching 'should test_bar'

$ ruby mini-test-name-matching.rb --verbose --seed 1 \
--name "/should test_bar/"
Run options: --verbose --seed 1 --name "/should test_bar/"

# Running:

TestNamesWithMiniTestAndShoulda#test_: NamesWithMiniAndShoulda should test_bar_1.  = 0.00 s = .
TestNamesWithMiniTestAndShoulda#test_: NamesWithMiniAndShoulda should test_bar_2.  = 0.00 s = .
TestNamesWithMiniTestAndShoulda#test_: example-context should test_bar_1.  = 0.00 s = .
TestNamesWithMiniTestAndShoulda#test_: example-context should test_bar_2.  = 0.00 s = .

Finished in 0.002104s, 1900.9229 runs/s, 1900.9229 assertions/s.

4 runs, 4 assertions, 0 failures, 0 errors, 0 skips
source 'https://rubygems.org'
gem 'shoulda'
GEM
remote: https://rubygems.org/
specs:
activesupport (4.2.6)
i18n (~> 0.7)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
i18n (0.7.0)
json (1.8.3)
minitest (5.8.4)
shoulda (3.5.0)
shoulda-context (~> 1.0, >= 1.0.1)
shoulda-matchers (>= 1.4.1, < 3.0)
shoulda-context (1.2.1)
shoulda-matchers (2.8.0)
activesupport (>= 3.0.0)
thread_safe (0.3.5)
tzinfo (1.2.2)
thread_safe (~> 0.1)
PLATFORMS
ruby
DEPENDENCIES
activesupport
shoulda
BUNDLED WITH
1.10.6
require 'minitest/autorun'
require 'shoulda'
MiniTest::Test.i_suck_and_my_tests_are_order_dependent!
class TestNamesWithMiniTest < MiniTest::Test
def test_foo_1; assert true; end
def test_foo_2; assert true; end
def test_bar_1; assert true; end
def test_bar_2; assert true; end
end
class TestNamesWithMiniTestAndShoulda < MiniTest::Test
should :test_foo_1 do; assert true; end
should :test_foo_2 do; assert true; end
should :test_bar_1 do; assert true; end
should :test_bar_2 do; assert true; end
context 'example-context' do
should :test_foo_1 do; assert true; end
should :test_foo_2 do; assert true; end
should :test_bar_1 do; assert true; end
should :test_bar_2 do; assert true; end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment