minitest_plugin.rb:9 参数个数错误

minitest_plugin.rb:9 getting wrong number of arguments

~/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 测试命令。 运行 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

事实证明,在我的 test/test_helper.rb 中,我需要一行缺少的代码。我在 "class ActiveSupport::TestCase".

之前添加了这个
    Minitest::Reporters.use!

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

这实际上是 rails 中的一个错误,由 minitest 更新到 5.10.2 显示 here and it has already been fixed here

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

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

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

编辑

别忘了bundle update minitest

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

嘿,我正在做这个确切的教程并遵循了最佳解决方案,它解决了我的问题,特别是(对于我们这些菜鸟)我对我的 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

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

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

gem 'minitest', '5.10.1'

然后运行以下命令

bundle update minitest
rails test

问题已解决