Rails Minitest crashing when tests fail

2019-06-23 01:32发布

Minitest crashes every time a test fails when I run rails test (Rails 5 and Ruby 2.4.2). For example, I forced a simple test to fail by switching the assert to assert_not:

Failure: TransactionTest#test_transaction_should_be_valid [/home/.../test/models/transaction_test.rb:11]: Expected true to be nil or false

/home/.../.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/test_unit/reporter.rb:70:in `method': undefined method `test_transaction_should_be_valid' for class `Minitest::Result' (NameError)

If the test passes, then the entire report is successful and I get the report summary. If only one test fails I get the error report above. I defined test_transaction_should_be_valid in my transaction_test.rb file and the proof of it is that it runs smoothly when the test passes.

I'm stuck on this now. Any ideas as to what might be causing this?

1条回答
Juvenile、少年°
2楼-- · 2019-06-23 02:28

Apparently Rails is not yet quite compatible with Minitest 5.10/5.11: https://github.com/seattlerb/minitest/issues/730 They have posted a monkeypatch to tide us over.

Rails has apparently also fixed this in edge. https://github.com/rails/rails/pull/31624

This error disappeared for me when I pulled from the master branch. Put this in your Gemfile:

gem 'rails', git: 'https://github.com/rails/rails.git'

edit: promoting from comments (thanks coco9nyc):

or you can try downgrading minitest:

gem 'minitest', '5.10.3'
查看更多
登录 后发表回答