```{index} single: Test2::Manual::Tooling ``` # Test2::Manual::Tooling Manual page for tool authors. ## DESCRIPTION This section covers writing new tools, plugins, and other Test2 components. ## TOOL TUTORIALS ### FIRST TOOL [Test2::Manual::Tooling::FirstTool](Tooling/FirstTool.md) - Introduction to writing tools by cloning [ok()](https://metacpan.org/pod/ok()). ### MOVING FROM Test::Builder [Test2::Manual::Tooling::TestBuilder](Tooling/TestBuilder.md) - This section maps Test::Builder methods to Test2 concepts. ### NESTING TOOLS [Test2::Manual::Tooling::Nesting](Tooling/Nesting.md) - How to call other tools from your tool. ### TOOLS WITH SUBTESTS [Test2::Manual::Tooling::Subtest](Tooling/Subtest.md) - How write tools that make use of subtests. ### TESTING YOUR TEST TOOLS [Test2::Manual::Tooling::Testing](Tooling/Testing.md) - How to write tests for your test tools. ## PLUGIN TUTORIALS ### TAKING ACTION WHEN A NEW TOOL STARTS [Test2::Manual::Tooling::Plugin::ToolStarts](Tooling/Plugin/ToolStarts.md) - How to add behaviors that occur when a tool starts work. ### TAKING ACTION AFTER A TOOL IS DONE [Test2::Manual::Tooling::Plugin::ToolCompletes](Tooling/Plugin/ToolCompletes.md) - How to add behaviors that occur when a tool completes work. ### TAKING ACTION AT THE END OF TESTING [Test2::Manual::Tooling::Plugin::TestingDone](Tooling/Plugin/TestingDone.md) - How to add behaviors that occur when testing is complete (IE done\_testing, or end of test). ### TAKING ACTION JUST BEFORE EXIT [Test2::Manual::Tooling::Plugin::TestExit](Tooling/Plugin/TestExit.md) - How to safely add pre-exit behaviors. ## WRITING A SIMPLE JSONL FORMATTER [Test2::Manual::Tooling::Formatter](Tooling/Formatter.md) - How to write a custom formatter, in our case a JSONL formatter. ## WHERE TO FIND HOOKS AND APIS - global API [Test2::API](../API.md) is the global API. This is primarily used by plugins that provide global behavior. - In hubs [Test2::Hub](../Hub.md) 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 [Test2::Manual](../Manual.md) - 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 under the same terms as Perl itself. See `http://dev.perl.org/licenses/` ## Modules - [`Test2::Manual::Tooling::FirstTool`](Tooling/FirstTool.md) - Write your first tool with Test2. - [`Test2::Manual::Tooling::Formatter`](Tooling/Formatter.md) - How to write a custom formatter, in our case a JSONL formatter. - [`Test2::Manual::Tooling::Nesting`](Tooling/Nesting.md) - Tutorial for using other tools within your own. - [`Test2::Manual::Tooling::Plugin`](Tooling/Plugin.md) - [`Test2::Manual::Tooling::Subtest`](Tooling/Subtest.md) - How to implement a tool that makes use of subtests. - [`Test2::Manual::Tooling::TestBuilder`](Tooling/TestBuilder.md) - This section maps Test::Builder methods to Test2 concepts. - [`Test2::Manual::Tooling::Testing`](Tooling/Testing.md) - Tutorial on how to test your testing tools. ```{toctree} :hidden: :maxdepth: 1 Tooling/FirstTool Tooling/Formatter Tooling/Nesting Tooling/Plugin Tooling/Subtest Tooling/TestBuilder Tooling/Testing ```