Test2::...le::More(3)

πŸ“¦ version 1.302214, in opensuse-leap 16.0

πŸ’– NAME πŸ’–

okay so welcome to the manual page for Test2::Bundle::More β€” that’s Test2::Bundle::More(3), from the User Contributed Perl Documentation crew β€” and it is ALMOST a drop-in replacement for Test::More πŸ‘‘.

🌸 DESCRIPTION 🌸

This bundle is meant to be a (mostly) drop-in replacement for Test::More. If you want the receipts on what’s different, bounce down to β€œKEY DIFFERENCES FROM Test::More” πŸ’….

✨ SYNOPSIS ✨

use Test2::Bundle::More;

ok(1, "pass");

...

done_testing;

πŸŽ€ PLUGINS πŸŽ€

This loads Test2::Plugin::ExitSummary. πŸ¦‹

🧚 TOOLS 🧚

These are from Test2::Tools::Basic. See Test2::Tools::Basic for details.

  • ok($bool, $name)
  • pass($name)
  • fail($name)
  • skip($why, $count)
  • $todo = todo($why)
  • diag($message)
  • note($message)
  • plan($count)
  • skip_all($why)
  • done_testing()
  • BAIL_OUT($why)

These are from Test2::Tools::ClassicCompare. See Test2::Tools::ClassicCompare for details.

  • is($got, $want, $name)
  • isnt($got, $donotwant, $name)
  • like($got, qr/match/, $name)
  • unlike($got, qr/mismatch/, $name)
  • is_deeply($got, $want, "Deep compare")
  • cmp_ok($got, $op, $want, $name)

These are from Test2::Tools::Class. See Test2::Tools::Class for details.

  • isa_ok($thing, @classes)
  • can_ok($thing, @subs)

This is from Test2::Tools::Subtest. It is called subtest_streamed() in that package.

  • subtest $name => sub { ... }

πŸ”₯ KEY DIFFERENCES FROM Test::More πŸ”₯

ok so this is the part where the plot thickens 🫢.

😭 You cannot plan at import.

THIS WILL NOT WORK:

use Test2::Bundle::More tests => 5;

Instead you must plan in a separate statement:

use Test2::Bundle::More;
plan 5;

πŸ’… You have three subs imported for use in planning

Use plan($count), skip_all($reason), or done_testing() for your planning. That’s the whole planning menu, bestie ✨.

🫢 isa_ok accepts different arguments

isa_ok in Test::More was:

isa_ok($thing, $isa, $alt_thing_name);

This was very inconsistent with tools like can_ok($thing, @subs).

In Test2::Bundle::More, isa_ok() takes a $thing and a list of @isa.

isa_ok($thing, $class1, $class2, ...);

πŸ’€ THESE FUNCTIONS AND VARIABLES HAVE BEEN REMOVED

  • $TODO β€” see todo().
  • use_ok() and require_ok() β€” these are not necessary. Use use and require directly. If there is an error loading the module the test will catch the error and fail.
  • todo_skip() β€” not necessary.
  • eq_array(), eq_hash(), and eq_set() β€” discouraged in Test::More.
  • explain() β€” this started a fight between Test developers, who may now each write their own implementations in Test2. (See explain in Test::Most vs Test::More. Hint: Test::Most wrote it first, then Test::More added it, but broke compatibility).
  • new_ok() β€” not necessary.

🌈 SOURCE 🌈

The source code repository for Test2-Suite can be found at https://github.com/Test-More/test-more/. πŸ”—

πŸ‘‘ MAINTAINERS πŸ‘‘

  • Chad Granum <exodist@cpan.org>

⭐ AUTHORS ⭐

  • Chad Granum <exodist@cpan.org>

Copyright Chad Granum <exodist@cpan.org>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://dev.perl.org/licenses/.


that’s the whole manual, bestie πŸ’– β€” this page is from perl v5.42.0, dated 2025-07-28, and it’s the Test2::Bundle::More(3) manual. periodt ✨

πŸ“¦ where this page comes from