Test2::Manual::Tooling(3pm) Perl Programmers Reference Guide Test2::Manual::Tooling(3pm)

# [NAME](#NAME)

Test2::Manual::Tooling - Manual page for tool authors.

# [DESCRIPTION](#DESCRIPTION)

This section covers writing new tools, plugins, and other Test2 components.

# [TOOL TUTORIALS](#TOOL_TUTORIALS)

## [FIRST TOOL](#FIRST_TOOL)

Test2::Manual::Tooling::FirstTool - Introduction to writing tools by cloning **ok()**.

## [MOVING FROM Test::Builder](#MOVING_FROM_Test::Builder)

Test2::Manual::Tooling::TestBuilder - This section maps Test::Builder methods to Test2 concepts.

## [NESTING TOOLS](#NESTING_TOOLS)

Test2::Manual::Tooling::Nesting - How to call other tools from your tool.

## [TOOLS WITH SUBTESTS](#TOOLS_WITH_SUBTESTS)

Test2::Manual::Tooling::Subtest - How write tools that make use of subtests.

## [TESTING YOUR TEST TOOLS](#TESTING_YOUR_TEST_TOOLS)

Test2::Manual::Tooling::Testing - How to write tests for your test tools.

# [PLUGIN TUTORIALS](#PLUGIN_TUTORIALS)

## [TAKING ACTION WHEN A NEW TOOL STARTS](#TAKING_ACTION_WHEN_A_NEW_TOOL_STARTS)

Test2::Manual::Tooling::Plugin::ToolStarts - How to add behaviors that occur when a tool starts work.

## [TAKING ACTION AFTER A TOOL IS DONE](#TAKING_ACTION_AFTER_A_TOOL_IS_DONE)

Test2::Manual::Tooling::Plugin::ToolCompletes - How to add behaviors that occur when a tool completes work.

## [TAKING ACTION AT THE END OF TESTING](#TAKING_ACTION_AT_THE_END_OF_TESTING)

Test2::Manual::Tooling::Plugin::TestingDone - How to add behaviors that occur when testing is complete (IE done\_testing, or end of test).

## [TAKING ACTION JUST BEFORE EXIT](#TAKING_ACTION_JUST_BEFORE_EXIT)

Test2::Manual::Tooling::Plugin::TestExit - How to safely add pre-exit behaviors.

# [WRITING A SIMPLE JSONL FORMATTER](#WRITING_A_SIMPLE_JSONL_FORMATTER)

Test2::Manual::Tooling::Formatter - How to write a custom formatter, in our case a JSONL formatter.

# [WHERE TO FIND HOOKS AND APIS](#WHERE_TO_FIND_HOOKS_AND_APIS)

[global API](#global)

Test2::API is the global API. This is primarily used by plugins that provide global behavior.

[In hubs](#In)

Test2::Hub is the base class for all hubs. This is where hooks for manipulating events, or running things at the end of testing live.

# [SEE ALSO](#SEE_ALSO)

Test2::Manual - Primary index of the manual.

# [SOURCE](#SOURCE)

The source code repository for Test2-Manual can be found at *https://github.com/Test-More/test-more/*.

# [MAINTAINERS](#MAINTAINERS)

[Chad Granum &lt;exodist@cpan.org&gt;](#Chad)

# [AUTHORS](#AUTHORS)

[Chad Granum &lt;exodist@cpan.org&gt;](#Chad~2)

# [COPYRIGHT](#COPYRIGHT)

Copyright Chad Granum &lt;exodist@cpan.org&gt;.

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/*

2026-10-26 perl v5.44.0

---

Document: Test2::Manual::Tooling(3pm) from perl 5.44.0-r3 (Chainguard OS)
Source: https://github.com/Perl/perl5.git
