TEST2::BUNDLE::MORE(3perl)
π Test2::Bundle::More β like, the iconic Perl manual page, bestie π
Okay so real talk, this is the manual page for Test2::Bundle::More, part of the Perl Programmers Reference Guide. Sit down, grab a boba, and let's get into it π§β¨
β¨ NAME β¨
Test2::Bundle::More β it's ALMOST a drop-in replacement for Test::More. Like, almost almost. So close. Bestie adjacent. π
πΈ DESCRIPTION πΈ
So this bundle is intended to be a (mostly) drop-in replacement for Test::More. Like, it's giving "I can fix him" energy but for your test suite. π«Ά
Heads up though β "mostly" is doing a LOT of heavy lifting in that sentence. Peep "KEY DIFFERENCES FROM Test::More" below for the details, because there ARE details. There are always details. π
π SYNOPSIS π
The vibe, in code:
use Test2::Bundle::More;
ok(1, "pass");
...
done_testing;
Look at that. Clean. Gorgeous. No notes. β¨
π¦ PLUGINS π¦
This loads Test2::Plugin::ExitSummary. That's it. That's the whole plugin situation. It's a one-plugin icon. π
π₯ TOOLS π₯
Okay so here's the toolkit lineup, and honestly? We ate. π₯
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
Girl, heads up: it's called subtest_streamed() over in that package. Different name, same energy.
subtest $name => sub { ... }
π KEY DIFFERENCES FROM Test::More π
Alright, this is the part where I tell you everything that's not a straight swap, because I love you and I want you to not be confused. π
- You cannot plan at import. This is the big one. 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), ordone_testing()for your planning. Pick your fighter. β isa_okaccepts different arguments. Soisa_okinTest::Morewas:
isa_ok($thing, $isa, $alt_thing_name);
And this was very inconsistent with tools like "can_ok($thing, @subs)". Make it make sense. It did not.
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 π
Rest in peace, besties. Gone but not forgotten. π―οΈ
$TODOβ Seetodo().use_ok()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. So like, it's handled. Chill. πtodo_skip()β Not necessary.eq_array()eq_hash()eq_set()Discouraged inTest::More.explain()Okay so THIS one 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). The DRAMA. The LORE. πnew_ok()β Not necessary.
β SOURCE β
The source code repository for Test2-Suite can be found at https://github.com/Test-More/test-more/. Go star it, fr fr. π
π«Ά 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/
And that's the whole page, bestie! π This one's from perl v5.44.0, dated 2026-10-17, and it lives under Test2:...e::More(3perl) β so when you see that footer at the bottom of your terminal, that's just this page waving goodbye. Slay, go write some passing tests, periodt. π
β¨
π¦ where this page comes from
- arch rolling: perl 5.44.0-1 Β· Artistic-1.0-Perl AND GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms