TEST2::BUNDLE::MORE(3pm)
π NAME π
Okay bestie, welcome to Test2::Bundle::More β yes, the Test2::Bundle::More(3pm) manual β and it is ALMOST a drop-in replacement for Test::More. Iconic. π
β¨ DESCRIPTION β¨
This bundle is intended to be a (mostly) drop-in replacement for Test::More. For the whole tea, see "KEY DIFFERENCES FROM Test::More" below. π«Ά
π SYNOPSIS π
use Test2::Bundle::More;
ok(1, "pass");
...
done_testing;
π§ PLUGINS π§
This loads Test2::Plugin::ExitSummary. That's the plugin moment. β¨
π οΈ TOOLS π οΈ
These are from Test2::Tools::Basic. See Test2::Tools::Basic for details, bestie.
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 π
Okay so here's where the plot twists live. π
π« 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. Periodt. π
π¦ 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β Seetodo().use_ok(),require_ok()β These are not necessary. Useuseandrequiredirectly. If there is an error loading the module the test will catch the error and fail.todo_skip()β Not necessary.eq_array(),eq_hash(),eq_set()β Discouraged inTest::More.explain()β This started a fight between Test developers, who may now each write their own implementations in Test2. (SeeexplaininTest::MostvsTest::More. Hint:Test::Mostwrote it first, thenTest::Moreadded 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 π
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 fromperl v5.42.3, dated2026-11-03. π
π¦ where this page comes from
- alpine 3.24: perl-doc 5.42.3-r0 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms