MiniTest - only failed ReRun tests

Can minitest be allowed to run only failed tests with the rake command?

I can not find anything on the Internet about this ... He worked with rspec or cucumber. Is there any opportunity here?

+7
ruby ruby-on-rails-3 testing minitest
source share
3 answers

You can check the guard-minitest gem . I think what you are looking for.

+1
source share

The closest I could find is this plugin:

https://github.com/ivantsepp/minitest-rerun-options

It displays command line options for such tests:

Rerun failed tests options: --name TestExample#test_another_that_will_fail --name TestExample#test_that_will_fail 

so you can add them to your rake test command.

+1
source share

spring: 'bin/rails test' # in the Guardfile only modified files will be run.

I have the following config in Guardfile. (A combination of Unit and Spec style tests was written in the project)

 # all_on_start: false # run all tests in group on startup, default: true # all_after_pass: true # run all tests in group after changed specs pass, default: false # cli: '--test' # pass arbitrary Minitest CLI arguments, default: '' # test_folders: ['tests'] # specify an array of paths that contain test files, default: %w[test spec] # include: ['lib'] # specify an array of include paths to the command that runs the tests # test_file_patterns: %w[test_*.rb] # specify an array of patterns that test files must match in order to be run, default: %w[*_test.rb test_*.rb *_spec.rb] # spring: true # enable spring support, default: false # zeus: true # enable zeus support; default: false # drb: true # enable DRb support, default: false # bundler: false # don't use "bundle exec" to run the minitest command, default: true # rubygems: true # require rubygems when running the minitest command (only if bundler is disabled), default: false # env: {} # specify some environment variables to be set when the test command is invoked, default: {} # all_env: {} # specify additional environment variables to be set when all tests are being run, default: false # autorun: false # require 'minitest/autorun' automatically, default: true options = { spring: 'bin/rails test', # NOTE: true = run all tests on every run all_on_start: false, all_after_pass: false } guard :minitest, options do # with Minitest::Unit watch(%r{^test/(.*)\/?test_(.*)\.rb$}) watch(%r{^test/(.*)\/.+_test\.rb$}) watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" } watch(%r{^test/test_helper\.rb$}) { 'test' } watch(%r{^test/.+_test\.rb$}) # watch('test/test_helper.rb') { 'test' } watch('config/routes.rb') { 'test/routing' } watch('app/controllers/application_controller.rb') { 'test/controllers' } watch(%r{^app/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" } watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "test/#{m[1]}#{m[2]}_test.rb" } watch(%r{^lib/(.+)\.rb$}) { |m| "test/lib/#{m[1]}_test.rb" } watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["test/routing/#{m[1]}_routing_test.rb", "test/#{m[2]}s/#{m[1]}_#{m[2]}_test.rb", "test/system/#{m[1]}_test.rb"] } # with Minitest::Spec watch(%r{^spec/(.*)_spec\.rb$}) watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" } watch(%r{^spec/spec_helper\.rb$}) { 'spec' } end 
0
source share

All Articles