Globbing doesn't work with Minitest - Only one

2019-07-20 09:41发布

问题:

I have placed all my specs in specs/*.rb.

However, when I run Minitest with ruby spec/**/*_spec.rb, only one file is run.

What gives?

回答1:

This is not minitest specific, but Ruby. You are effectively running a ruby program which knows nothing about the program being run.

Ruby does not support running multiple files at once afaik, so if you want to get a similar result you could try something like:

for file in spec/**/*_spec.rb; do ruby $file; done

UPDATE: for what you want you should probably create a Rake task as described here



回答2:

You can use the testrbl third party gem to run multiple Minitest files on the command line. You could also use the mtest bin from maxitest extensions.

Using a for loop in bash will incur overhead of loading your application/library for every test you pass it. If you have just ten tests, and you're testing a Rails app that takes 5 seconds to boot, that's over a minute of totally unnecessary load time.