【问题标题】:minitest_plugin.rb:9 getting wrong number of argumentsminitest_plugin.rb:9 参数数量错误
【发布时间】:2017-05-10 07:55:34
【问题描述】:
~/Sites/sample_app$ rails test
Running via Spring preloader in process 24338
Run options: --seed 58780

Running:

..

Finished in 0.292172s, 6.8453 runs/s, 6.8453 assertions/s.
/var/lib/gems/2.3.0/gems/railties-5.1.0/lib/rails/test_unit/minitest_plugin.rb:9:in `aggregated_results': wrong number of arguments (given 1, expected 0) (ArgumentError)

我不明白为什么会出现此错误。我似乎找不到任何有此特定错误的人。我正在关注教程https://www.railstutorial.org/book/static_pages。此错误遵循 rails test 命令。如果有帮助,请运行 Ubuntu 和 rails 5.1。我没有传递任何参数,所以我不明白为什么我会收到这个错误。

我的测试文件看起来像:

    require 'test_helper'

    class StaticPagesControllerTest < ActionDispatch::IntegrationTest

    test "should get home" do
      get static_pages_home_url
      assert_response :success
    end

    test "should get help" do
      get static_pages_help_url
      assert_response :success
    end

【问题讨论】:

    标签: ruby-on-rails ruby minitest argument-error


    【解决方案1】:

    这实际上是 Rails 中的一个错误,正如 here 所说,通过 minitest 更新到 5.10.2 时发现,并且已经修复 here

    由于拉取请求只有 10 小时(在撰写本文时),它尚未发布,尽管它已经合并。

    同时,您可以在 Gemfile 中指定:

    gem 'minitest', '~> 5.10', '!= 5.10.2'
    

    编辑

    别忘了bundle update minitest

    【讨论】:

      【解决方案2】:

      嘿,我正在做这个确切的教程并遵循最佳解决方案,它解决了我的问题,特别是(对于我们这些菜鸟来说)我对我的 Gemfile 做了这个

      group :test do
        gem 'rails-controller-testing', '0.1.1'
        gem 'minitest-reporters',       '1.1.9'
        gem 'guard',                    '2.13.0'
        gem 'guard-minitest',           '2.4.4'
        gem 'minitest', '~> 5.10', '!= 5.10.2' # add this here to fix error
      end
      

      【讨论】:

        【解决方案3】:

        事实证明,在我的 test/test_helper.rb 中,我需要一行缺少的代码。我在“class ActiveSupport::TestCase”之前添加了这个。

            Minitest::Reporters.use!
        

        这给了我一个通过测试的结果,没有奇怪的参数错误。希望这对未来的人有所帮助!

        【讨论】:

          【解决方案4】:

          问题出在 minitest 5.10.2 中。降级到 5.10.1 可以修复它。

          在 Gemfile 的测试组中添加这一行

          gem 'minitest', '5.10.1'
          

          然后运行以下命令

          bundle update minitest
          rails test
          

          问题已解决

          【讨论】:

            【解决方案5】:

            我也遇到了这个错误。我尝试使用投票最多的解决方案,但 rails 告诉我 bundle 已将 minitest 锁定到 5.10.2。相反,我只是做了一个gem update minitest,我的测试运行时没有出现奇怪的错误。

            【讨论】:

            • 如果您只更改了 Gemfile 中的 minitest gem,请尝试使用 bundle update --source minitest 更新它
            • OP:只需阅读捆绑器给您的消息,它会告诉您使用bundle update 更改锁定版本...
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-06-25
            • 1970-01-01
            相关资源
            最近更新 更多