【问题标题】:Rails Minitest crashing when tests fail测试失败时 Rails Minitest 崩溃
【发布时间】:2018-01-12 15:43:28
【问题描述】:

当我运行rails test(Rails 5 和 Ruby 2.4.2)时,每次测试失败时 Minitest 都会崩溃。例如,我通过将assert 切换为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)

如果测试通过,则整个报告成功,我得到报告摘要。如果只有一项测试失败,我会收到上面的错误报告。我在我的transaction_test.rb 文件中定义了test_transaction_should_be_valid,证明它在测试通过时运行平稳。

我现在被困在这上面了。关于可能导致这种情况的任何想法?

【问题讨论】:

    标签: ruby-on-rails minitest


    【解决方案1】:

    显然 Rails 与 Minitest 5.10/5.11 还不太兼容:https://github.com/seattlerb/minitest/issues/730 他们发布了一个猴子补丁来帮助我们渡过难关。

    Rails 显然也解决了这个问题。 https://github.com/rails/rails/pull/31624

    当我从主分支拉出时,这个错误对我来说消失了。把它放在你的 Gemfile 中:

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

    编辑:从 cmets 推广(感谢 coco9nyc):

    或者您可以尝试降级 minitest:

    gem 'minitest', '5.10.3'
    

    【讨论】:

    • 顺便说一句,在此过程中,我还不得不强制pg 不升级到1.0.0。:gem 'pg', '~> 0.21.0'
    • 我希望我的 Google 搜索能找到这个 Github 问题。谢谢!
    • 不客气!我像狗啃骨头一样用谷歌搜索,终于幸运了。
    • 降级对我有用。由于命令“rails test”的建议,我添加了另一个 gem“activerecord-session_store”。
    • 谢谢,我正在将 Rails 4.2.8 升级到 5.0.7.x(正在升级到 5.2.x)并遇到了这个问题。我跳到 Rails 5.2.6 的一个较小的应用程序没有遇到这个错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    相关资源
    最近更新 更多