Agile Web Development with Rails 7.2: `bin/rails test` command errors (page 73 of PDF)

When running bin/rails test I get the following error:

uncle_bob@raspberrypi:~/rails/depot $ bin/rails test
≈ tailwindcss v4.3.3

Done in 90ms
Running 7 tests in a single process (parallelization threshold is 50)
Run options: --seed 11964

Running:

/home/uncle_bob/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/railties-7.2.3/lib/rails/test_unit/line_filtering.rb:7:in run': wrong number of arguments (given 3, expected 1..2) (ArgumentError)         from /home/uncle_bob/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:473:in block (2 levels) in run_suite'
from /home/uncle_bob/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:469:in each'         from /home/uncle_bob/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:469:in block in run_suite'
from /home/uncle_bob/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:511:in on_signal'         from /home/uncle_bob/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:498:in with_info_handler'
from /home/uncle_bob/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:468:in run_suite'         from /home/uncle_bob/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:361:in block in run_all_suites'
from /home/uncle_bob/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:361:in map'         from /home/uncle_bob/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:361:in run_all_suites'
from /home/uncle_bob/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:316:in run'         from /home/uncle_bob/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:84:in block in autorun'

Using Ruby 3.3.5

uncle_bob@raspberrypi:~/rails/depot $ cat ./.ruby-version
3.3.5

Using Rails 7.2

uncle_bob@raspberrypi:~/rails/depot $ bin/rails --version
Rails 7.2.3

Any ideas? Thanks in advance

By default my Rails project had Minitest 6.0.6. Uninstalling Minitest 6.0.6 (via the bundle command) and installing 5.20 seemed to work. However, in my mind, that contradicts the Minitest GitHub page. More to come…

https://github.com/minitest/minitest

Played around some more and ended up doing the following.

uncle_bob@raspberrypi:~/rails/depot3 $ gem list --local minitest

*** LOCAL GEMS ***

minitest (6.0.6, 5.27.0, 5.20.0)

There was no mention of minitest in Gemfile. However, Gemfile.lock indicated minitest 6.0.6 was being used.

I ran:

uncle_bob@raspberrypi:~/rails/depot3 $ bundle add minitest --version "~> 5.20" --group "test"
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...

Which added the following line to Gemfile:

gem "minitest", "~> 5.20", :group => :test

NB: I’m guessing, as an alternative, I could have edited Gemfile directly with the following:

group :test do
  # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
  gem "capybara"
  gem "selenium-webdriver"
  gem "minitest", "~> 5.20"
end

The Gemfile.lock now includes the following minitest lines:

...
    activesupport (7.2.3)
      ...
      minitest (>= 5.1)
...
    minitest (5.27.0)
...
    rails-dom-testing (2.3.0)
      activesupport (>= 5.0.0)
      minitest
...
DEPENDENCIES
  ...
  minitest (~> 5.20)
...

Resources:

https://stdgems.org/minitest/

Assumptions:

Minitest-rails is quite a separate gem that people used prior to minitest being bundled with Rails.