Test2::Todo(3pm)

okay bestie, you opened the Test2::Todo(3pm) page from the Perl Programmers Reference Guide and honestly? iconic. let's get into it ✨

πŸŽ€ NAME πŸŽ€

Test2::Todo - TODO extension for Test2.

That's the whole name, no cap.

πŸ’– DESCRIPTION πŸ’–

Okay so Test2::Todo is an object that lets you create and manage TODO states for tests. It's an extension, not a plugin or a tool. This library can be used by plugins and tools to manage todo states.

If you simply want to write a todo test then you should look at the todo function provided by Test2::Tools::Basic.

🌸 SYNOPSIS 🌸

use Test2::Todo;

# Start the todo
my $todo = Test2::Todo->new(reason => 'Fix later');

# Will be considered todo, so suite still passes
ok(0, "oops");

# End the todo
$todo->end;

# TODO has ended, this test will actually fail.
ok(0, "oops");

πŸ› οΈ CONSTRUCTION OPTIONS πŸ› οΈ

  • reason (required) β€” the reason for the todo. It can be any defined value.
  • hub (optional) β€” the hub that the TODO state should be applied to. If you don't provide one, the current global hub is used.

πŸ’… INSTANCE METHODS πŸ’…

  • $todo->end β€” ends the todo state. That's it, bestie.

πŸ‘‘ CLASS METHODS πŸ‘‘

  • $count = Test2::Todo->hub_in_todo($hub) β€” if the hub has any todo objects, this returns the total number of them. If the hub has no todo objects, it returns 0.

πŸŒ€ OTHER NOTES πŸŒ€

🧚 How it works

When an instance is created, a filter sub is added to the Test2::Hub. This filter sets the todo and diag_todo attributes on all events as they come in. When the instance is destroyed, or end() is called, the filter is removed.

When a new hub is pushed (such as when a subtest is started), the new hub inherits the filter, but it will only set diag_todo; it will not set todo on events in child hubs.

πŸ’€ $todo->end is called at destruction

If your $todo object falls out of scope and gets garbage collected, the todo will end.

🫢 Can I use multiple instances?

Yes. The most recently created one that is still active will win.

πŸ”— 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/


ok that's the whole page, bestie. It's giving perl v5.42.3, dated 2026-11-03, and yes it's the Test2::Todo(3pm) man page. bye and slay πŸ’œ

πŸ“¦ where this page comes from