从零开始搭建的Rails 8.0.4应用在执行测试(bin/rails test)时,line_filtering.rb的参数个数不对

前端开发 2026-07-12

我新建了一个Rails项目,并生成了一个模型,具体如下:

rails new nonono --css=bootstrap -j esbuild

bin/rails g scaffold State name

之后我运行了测试套件

bin/rails test

并出现了以下错误:

$> bin/rails test
... 
# Running:

/home/user/.rvm/gems/ruby-3.4.5/gems/railties-8.0.4/lib/rails/test_unit/line_filtering.rb:7:in 'run': wrong number of arguments (given 3, expected 1..2) (ArgumentError)
    from /home/user/.rvm/gems/ruby-3.4.5/gems/minitest-6.0.2/lib/minitest.rb:473:in 'block (2 levels) in Minitest::Runnable.run_suite'
    from /home/user/.rvm/gems/ruby-3.4.5/gems/minitest-6.0.2/lib/minitest.rb:469:in 'Array#each'
    from /home/user/.rvm/gems/ruby-3.4.5/gems/minitest-6.0.2/lib/minitest.rb:469:in 'block in Minitest::Runnable.run_suite'
    from /home/user/.rvm/gems/ruby-3.4.5/gems/minitest-6.0.2/lib/minitest.rb:511:in 'Minitest::Runnable.on_signal'
    from /home/user/.rvm/gems/ruby-3.4.5/gems/minitest-6.0.2/lib/minitest.rb:498:in 'Minitest::Runnable.with_info_handler'
    from /home/user/.rvm/gems/ruby-3.4.5/gems/minitest-6.0.2/lib/minitest.rb:468:in 'Minitest::Runnable.run_suite'
    from /home/user/.rvm/gems/ruby-3.4.5/gems/minitest-6.0.2/lib/minitest.rb:361:in 'block in Minitest.run_all_suites'
    from /home/user/.rvm/gems/ruby-3.4.5/gems/minitest-6.0.2/lib/minitest.rb:361:in 'Array#map'
    from /home/user/.rvm/gems/ruby-3.4.5/gems/minitest-6.0.2/lib/minitest.rb:361:in 'Minitest.run_all_suites'
    from /home/user/.rvm/gems/ruby-3.4.5/gems/minitest-6.0.2/lib/minitest.rb:316:in 'Minitest.run'
    from /home/user/.rvm/gems/ruby-3.4.5/gems/minitest-6.0.2/lib/minitest.rb:84:in 'block in Minitest.autorun'

我在谷歌上搜索过这个错误,似乎会偶尔出现。网上的帖子指出minitest 6在 Rails 7以上版本中不起作用。但该如何修复?我尝试使用minitest<6,但没有作用。

最让我吃惊的是,即使是在一个从零开始、使用原始Gemfile构建的应用中,这个问题也会出现。

版本信息:

ruby 3.4.5(2025-07-16修订20cda200d3)+PRISM [x86_64-linux]

Rails 8.0.4

--- 重要提示:我没有修改任何文件(例如Gemfile)

解决方案

Ruby on Rails 8.0与 Minitest 6.0不兼容(请参阅这个 错误报告)。

你要么把Minitest降级到5.1,要么将Ruby on Rails升级到8.1。两种方法都可以通过在Gemfile中设置所需的版本号,然后再次运行 bundle install 来实现。

由于这是一个新应用。我建议在你的电脑上升级Ruby on Rails,然后使用Rails的最新版本创建一个新应用:

$ gem update rails
$ rails new ...
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章