[ruby-talk:444726] [ANN] minitest 6.0.0.a1 Released
minitest version 6.0.0.a1 has been released! * home: <https://minite.st/> * code: <https://github.com/minitest/minitest> * bugs: <https://github.com/minitest/minitest/issues> * rdoc: <https://docs.seattlerb.org/minitest> * clog: <https://github.com/minitest/minitest/blob/master/History.rdoc> * emacs: <https://github.com/arthurnn/minitest-emacs> * vim: <https://github.com/vim-test/vim-test> 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. :P 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.a.1 / 2025-12-15 This is an alpha level release in order to get feedback. I'm pretty settled on integrating minitest-sprint's minitest cmdline but less sold on having bisect+server integrated. Please give me feedback here: https://github.com/minitest/minitest/issues/1040 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. * 1 voodoo: * HACK: does anyone require minitest/test w/o minitest? that's crazy right?
participants (1)
-
Ryan Davis