---
name: "Test2::Manual::Tooling"
section: "3pm"
platform: "linux"
package: "libtest-simple-perl"
version: "1.302210-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test2::Manual::Tooling/3pm"
---

# Test2::Manual::Tooling(3pm)

Manual page for tool authors.

## NAME

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 - Introduction to writing tools by cloning **ok()**.

### MOVING FROM Test::Builder

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

### NESTING TOOLS

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

### TOOLS WITH SUBTESTS

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

### TESTING YOUR TEST TOOLS

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

## PLUGIN TUTORIALS

### 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

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

### 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

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

## 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

- global API

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

- In hubs

  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

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