When it’s about writing tests for a Ruby project, I prefer minitest to anything else. It’s fast and doesn’t require to switch mental context to any domain-specific language (DSL). It’s just Ruby.
Because minitest allows to express tests using plain Ruby, Ruby is the only necessary tool to run those tests.
That works fine for one file, but a bit tricky for multiple test files at once.
minitest comes with a Rake task to run all tests. However for small projects it might be to much to bring Rake just for that case.
So I wrote a script to run tests without anything but Ruby. It’s basically a wrapper around a test runner that comes with minitest.
The script sets up an environment and calls the minitest runner. No magic.
All command-line options of the minitest runner are available as well:
env command allows to find a script’s interpreter when its location is a non-standard one.
In scripts it’s recommended to use env in shebang lines to find the executable and run it.
On GNU/Linux if it’s necessary to run a script’s interpreter with options, env has to be used with -S to pass options in shebang lines.