Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to run a single test in MiniTest?

People also ask

How do you run a Minitest test?

To run a Minitest test, the only setup you really need is to require the autorun file at the beginning of a test file: require 'minitest/autorun' . This is good if you'd like to keep the code small. A better way to get started with Minitest is to have Bundler create a template project for you.

How do I run a test in rails?

2.7 The Rails Test Runner Or we can run a single test file by passing the bin/rails test command the filename containing the test cases. This will run all test methods from the test case. You can also run a particular test method from the test case by providing the -n or --name flag and the test's method name.


The command should be:

% rake test TEST=test/test_foobar.rb TESTOPTS="--name=test_foobar1 -v"

Have you tried:

ruby path/to/test_file.rb --name test_method_name

No gem required: ruby -Itest test/lib/test.rb --name /some_test/

Source: http://blog.arvidandersson.se/2012/03/28/minimalicous-testing-in-ruby-1-9


This is one of the things that bother me about the string name definition in tests.

When you have:

def test_my_test
end

you always know how your test is named so you can execute it like this:

ruby my_test -n test_my_test

But when you have something like:

it "my test" do
end

you are never sure how this test is really named internally so you can not use the -n option just directly.

To know how this test is named internally you only have an option: execute the whole file to try to figure out looking in the logs.

My workaround is (temporally) add something to the test name very unique like:

it "my test xxx" do
end

and then use the RegEx version of the '-n' parameter like:

ruby my_test.rb -n /xxx/

I'm looking for similar functionality to rspec path/to/file.rb -l 25

With Nick Quaranto's "m" gem, you can say:

m spec/my_spec.rb:25

If you are using MiniTest with Rails 5+ the best way to run all tests in a single file is:

bin/rails test path/to/test_file.rb

And for a single test (e.g. on line 25):

bin/rails test path/to/test_file.rb:25

See http://guides.rubyonrails.org/testing.html#the-rails-test-runner