10
~/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
4

5 回答 5

20

这实际上是 Rails 中的一个错误,由 minitest 更新到 5.10.2 所揭示,如此处所述,并且已在此处修复

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

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

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

编辑

不要忘记bundle update minitest

于 2017-05-10T09:55:13.217 回答
5

嘿,我正在做这个确切的教程并遵循最佳解决方案,它解决了我的问题,特别是(对于我们完全的菜鸟)我对我的 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
于 2017-05-19T18:15:34.160 回答
3

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

    Minitest::Reporters.use!

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

于 2017-05-10T08:24:33.210 回答
2

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

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

gem 'minitest', '5.10.1'

然后运行以下命令

bundle update minitest
rails test

问题已解决

于 2019-05-06T10:49:06.733 回答
0

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

于 2017-05-11T05:51:14.567 回答