Test2::M...stingDone(3) Perl Programmers Reference Guide Test2::M...stingDone(3) NAME Test2::Manual::Tooling::Plugin::TestingDone - Run code when the test file is finished, or when done_testing is called. DESCRIPTION This is a way to add behavior to the end of a test file. This code is run either when done_testing() is called, or when the test file has no more run-time code to run. When triggered by done_testing() this will be run BEFORE the plan is calcu- lated and sent. This means it IS safe to make test assertions in this call- back. COMPLETE CODE UP FRONT package Test2::Plugin::MyPlugin; use Test2::API qw{test2_add_callback_testing_done}; sub import { my $class = shift; test2_add_callback_testing_done(sub { ok(!$some_global, '$some_global was not set'); print "The test file is done, or done_testing was just called\n" }); } 1; LINE BY LINE use Test2::API qw{test2_add_callback_testing_done}; This imports the test2_add_callback_testing_done() callback. test2_add_callback_testing_done(sub { ... }); This adds our callback to be called when testing is done. ok(!$some_global, '$some_global was not set') It is safe to make assertions in this type of callback. This code sim- ply asserts that some global was never set over the course of the test. print "The test file is done, or done_testing was just called\n" This prints a message when the callback is run. UNDER THE HOOD Before test2_add_callback_testing_done() this kind of thing was still pos- sible, but it was hard to get right, here is the code to do it: test2_add_callback_post_load(sub { my $stack = test2_stack(); # Insure we have at least one hub, but we do not necessarily want the # one this returns. $stack->top; # We want the root hub, not the top one. my ($root) = Test2::API::test2_stack->all; # Make sure the hub does not believe nothing has happened. $root->set_active(1); # Now we can add our follow-up code $root->follow_up(sub { # Your callback code here }); }); SEE ALSO Test2::Manual - Primary index of the manual. SOURCE The source code repository for Test2-Manual can be found at https://github.com/Test-More/test-more/. MAINTAINERS Chad Granum AUTHORS Chad Granum COPYRIGHT Copyright Chad Granum . This program is free software; you can redistribute it and/or modify it un- der the same terms as Perl itself. See http://dev.perl.org/licenses/ perl v5.44.0 2026-06-22 Test2::M...stingDone(3)