【问题标题】:What does this MiniTest::Unit::TestCase warning mean?这个 MiniTest::Unit::TestCase 警告是什么意思?
【发布时间】:2013-07-04 03:06:31
【问题描述】:

我的测试运行没有问题,突然出现以下警告:

MiniTest::Unit::TestCase is now Minitest::Test

这是在以下库中报告的:

ruby-1.9.3-p392/lib/ruby/1.9.1/test/unit/testcase.rb:8:in `<module:Unit>'
gems/activesupport-3.2.12/lib/active_support/test_case.rb:12:in `<module:ActiveSupport>'
gems/activesupport-3.2.12/lib/active_support/descendants_tracker.rb:34:in `inherited'

我不知道是什么促使这些警告出现。有人知道我可以做些什么来消除警告吗?

即使出现警告,测试似乎仍然运行良好。

我的 Rails 环境是 3.2.12,在 OSX 10.8.4 上运行。

谢谢!

【问题讨论】:

    标签: ruby-on-rails minitest


    【解决方案1】:

    您必须已升级到 minitest 5.0。 MiniTest::Unit::TestCase 被重命名为 Minitest::Test。这是release notes

    【讨论】:

    • 好的,但是关于如何摆脱警告,如何使 minitest 5 正确的任何提示?
    • 在您的 Gemfile 中指定版本 4.7.5:gem "minitest", "4.7.5"
    • 但是如果我愿意,为什么我不能使用 minitest 5?啊,你是说minitest 5由于某种原因不兼容ActiveSupport?
    • Rails 4.0 以下使用MiniTest::Unit::TestCase,这是 Minitest 5.0 中已弃用的内容。如果您不想收到已弃用的警告,请使用未弃用的版本。 Rails 4.1 使用 Minitest::Test,这是在 Minitest 5.0 中添加的。
    【解决方案2】:

    另一种可能性:您使用的是较新版本的 ruby​​。我在 ruby​​ 2.1.2 上运行此警告/错误(即使使用 minitest 4.7.5);降级到 ruby​​ 2.0.0 解决了它

    【讨论】:

    • 这是从 Ruby 2.1 中的 stdlib Test::Unit::TestCase 调用的。在 Minitest 5 的 stdlib 更新之前,降级到 Minitest 4 或 Ruby 2.0 似乎是唯一的解决方案。
    【解决方案3】:

    您可以同时使用 test-unitminitest 的新 gem 版本。示例:

    gem "test-unit", "~> 3.0"
    gem "minitest", "~> 5.5"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-17
      • 2011-09-25
      • 2012-02-20
      • 2020-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多