[ruby-talk:444727] [ANN] minitest 6.0.0 Released

minitest version 6.0.0 has been released!

* home: <https://minite.st/&gt;
* code: <https://github.com/minitest/minitest&gt;
* bugs: <https://github.com/minitest/minitest/issues&gt;
* rdoc: <https://docs.seattlerb.org/minitest&gt;
* clog: <https://github.com/minitest/minitest/blob/master/History.rdoc&gt;
* emacs: <https://github.com/arthurnn/minitest-emacs&gt;
* vim: <https://github.com/vim-test/vim-test&gt;

minitest provides a complete suite of testing facilities supporting
TDD, BDD, and benchmarking.

    "I had a class with Jim Weirich on testing last week and we were
     allowed to choose our testing frameworks. Kirk Haines and I were
     paired up and we cracked open the code for a few test
     frameworks...

     I MUST say that minitest is *very* readable / understandable
     compared to the 'other two' options we looked at. Nicely done and
     thank you for helping us keep our mental sanity."

    -- Wayne E. Seguin

minitest/test is a small and incredibly fast unit testing framework.
It provides a rich set of assertions to make your tests clean and
readable.

minitest/spec is a functionally complete spec engine. It hooks onto
minitest/test and seamlessly bridges test assertions over to spec
expectations.

minitest/benchmark is an awesome way to assert the performance of your
algorithms in a repeatable manner. Now you can assert that your newb
co-worker doesn't replace your linear algorithm with an exponential
one!

minitest/pride shows pride in testing and adds coloring to your test
output. I guess it is an example of how to write IO pipes too. :stuck_out_tongue:

minitest/test is meant to have a clean implementation for language
implementors that need a minimal set of methods to bootstrap a working
test suite. For example, there is no magic involved for test-case
discovery.

    "Again, I can't praise enough the idea of a testing/specing
     framework that I can actually read in full in one sitting!"

    -- Piotr Szotkowski

Comparing to rspec:

    rspec is a testing DSL. minitest is ruby.

    -- Adam Hawkins, "Bow Before MiniTest"

minitest doesn't reinvent anything that ruby already provides, like:
classes, modules, inheritance, methods. This means you only have to
learn ruby to use minitest and all of your regular OO practices like
extract-method refactorings still apply.

Changes:

### 6.0.0 / 2025-12-17

This is a major release. Read this.

Please give feedback here: 馃У Feedback on minitest 6.0.0 (alpha/beta/whatever) 路 Issue #1040 路 minitest/minitest 路 GitHub

Oh god... here we go... (again)

* 8 deaths in the family(!!):

  * Deleted MiniTest and MiniTest::Unit::TestCase compatibility namespaces.
  * Deleted all use of Marshal for serialization.
  * Deleted maglev? and rubinius? guard methods. LOL.
  * Deleted all minitest/spec expectations from Object. Use _/value/expect.
  * Dropped minitest/mock.rb. This has been extracted to the minitest-mock gem.
  * assert_equal(nil, value) no longer allowed. Use assert_nil to be explicit.
  * Removed assert_send. Use assert_predicate or assert_operator.
  * Removed Minitest::Test#class_name.

* 7 major (oft incompatible) changes:

  * Big: Major refactored MT6's run path!
    * Minitest.__run -> Minitest.run_all_suites
    * Runnable.run -> Runnable.run_suite & Runnable.filter_runnable_methods
    * Runnable.run_one_method -> Runnable.run
    * Removed Minitest.run_one_method (might bring it back to raise?)
  * Removed deprecated ENV["N"] to specify number of parallel tests. Use MT_CPU.
  * Renamed options[:filter] to options[:include], added --include cmdline option.
    * --name is still handled, but that will be removed in the future.
  * Renamed Minitest::Runnable#test_order to #run_order.
  * If #message is passed a proc then that proc overrides all other output.
    * They are no longer chained!
    * And it does less for formatting of your output.
  * Removed reporter arg from with_info_handler as it has never(?) been used. (HACK?)
  * Plugin loading is now opt-in!
    * Require the plugin in your test_helper.
    * Or use Minitest.load :x
    * Or call Minitest.load_plugins for the old autoloading behavior.

* 5 additions:

  * Added minitest-sprint's minitest cmdline, now with line support!
  * Added minitest-bisect. Run with minitest --bisect or -b.
  * Added minitest-server.
  * Added minitest/complete to help with shell's tab-completion of tests.
  * Vendored latest version of path_expander.

* 5 other:

  * Bumped to ruby 3.2+.
  * Removed obsolete conditional for CompositeReporter#prerecord.
  * Removed obsolete version guards around Minitest::Result in reporters.
  * assert_operator and assert_predicate both call assert_respond_to first.
  * Assertions reuse themselves a lot more. Bumps assertion count in some places.

路路路

______________________________________________
ruby-talk mailing list -- ruby-talk@ml.ruby-lang.org
To unsubscribe send an email to ruby-talk-leave@ml.ruby-lang.org
ruby-talk info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-talk.ml.ruby-lang.org/

Congrats on the release!

路路路

On Wed, Dec 17, 2025, 17:09 Ryan Davis via ruby-talk < ruby-talk@ml.ruby-lang.org> wrote:

minitest version 6.0.0 has been released!

* home: <https://minite.st/&gt;
* code: <https://github.com/minitest/minitest&gt;
* bugs: <https://github.com/minitest/minitest/issues&gt;
* rdoc: <https://docs.seattlerb.org/minitest&gt;
* clog: <https://github.com/minitest/minitest/blob/master/History.rdoc&gt;
* emacs: <https://github.com/arthurnn/minitest-emacs&gt;
* vim: <https://github.com/vim-test/vim-test&gt;

minitest provides a complete suite of testing facilities supporting
TDD, BDD, and benchmarking.

    "I had a class with Jim Weirich on testing last week and we were
     allowed to choose our testing frameworks. Kirk Haines and I were
     paired up and we cracked open the code for a few test
     frameworks...

     I MUST say that minitest is *very* readable / understandable
     compared to the 'other two' options we looked at. Nicely done and
     thank you for helping us keep our mental sanity."

    -- Wayne E. Seguin

minitest/test is a small and incredibly fast unit testing framework.
It provides a rich set of assertions to make your tests clean and
readable.

minitest/spec is a functionally complete spec engine. It hooks onto
minitest/test and seamlessly bridges test assertions over to spec
expectations.

minitest/benchmark is an awesome way to assert the performance of your
algorithms in a repeatable manner. Now you can assert that your newb
co-worker doesn't replace your linear algorithm with an exponential
one!

minitest/pride shows pride in testing and adds coloring to your test
output. I guess it is an example of how to write IO pipes too. :stuck_out_tongue:

minitest/test is meant to have a clean implementation for language
implementors that need a minimal set of methods to bootstrap a working
test suite. For example, there is no magic involved for test-case
discovery.

    "Again, I can't praise enough the idea of a testing/specing
     framework that I can actually read in full in one sitting!"

    -- Piotr Szotkowski

Comparing to rspec:

    rspec is a testing DSL. minitest is ruby.

    -- Adam Hawkins, "Bow Before MiniTest"

minitest doesn't reinvent anything that ruby already provides, like:
classes, modules, inheritance, methods. This means you only have to
learn ruby to use minitest and all of your regular OO practices like
extract-method refactorings still apply.

Changes:

### 6.0.0 / 2025-12-17

This is a major release. Read this.

Please give feedback here:
馃У Feedback on minitest 6.0.0 (alpha/beta/whatever) 路 Issue #1040 路 minitest/minitest 路 GitHub

Oh god... here we go... (again)

* 8 deaths in the family(!!):

  * Deleted MiniTest and MiniTest::Unit::TestCase compatibility namespaces.
  * Deleted all use of Marshal for serialization.
  * Deleted maglev? and rubinius? guard methods. LOL.
  * Deleted all minitest/spec expectations from Object. Use _/value/expect.
  * Dropped minitest/mock.rb. This has been extracted to the minitest-mock
gem.
  * assert_equal(nil, value) no longer allowed. Use assert_nil to be
explicit.
  * Removed assert_send. Use assert_predicate or assert_operator.
  * Removed Minitest::Test#class_name.

* 7 major (oft incompatible) changes:

  * Big: Major refactored MT6's run path!
    * Minitest.__run -> Minitest.run_all_suites
    * Runnable.run -> Runnable.run_suite & Runnable.filter_runnable_methods
    * Runnable.run_one_method -> Runnable.run
    * Removed Minitest.run_one_method (might bring it back to raise?)
  * Removed deprecated ENV["N"] to specify number of parallel tests. Use
MT_CPU.
  * Renamed options[:filter] to options[:include], added --include cmdline
option.
    * --name is still handled, but that will be removed in the future.
  * Renamed Minitest::Runnable#test_order to #run_order.
  * If #message is passed a proc then that proc overrides all other output.
    * They are no longer chained!
    * And it does less for formatting of your output.
  * Removed reporter arg from with_info_handler as it has never(?) been
used. (HACK?)
  * Plugin loading is now opt-in!
    * Require the plugin in your test_helper.
    * Or use Minitest.load :x
    * Or call Minitest.load_plugins for the old autoloading behavior.

* 5 additions:

  * Added minitest-sprint's minitest cmdline, now with line support!
  * Added minitest-bisect. Run with minitest --bisect or -b.
  * Added minitest-server.
  * Added minitest/complete to help with shell's tab-completion of tests.
  * Vendored latest version of path_expander.

* 5 other:

  * Bumped to ruby 3.2+.
  * Removed obsolete conditional for CompositeReporter#prerecord.
  * Removed obsolete version guards around Minitest::Result in reporters.
  * assert_operator and assert_predicate both call assert_respond_to first.
  * Assertions reuse themselves a lot more. Bumps assertion count in some
places.
______________________________________________
ruby-talk mailing list -- ruby-talk@ml.ruby-lang.org
To unsubscribe send an email to ruby-talk-leave@ml.ruby-lang.org
ruby-talk info --
https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-talk.ml.ruby-lang.org/