.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Test2::Manual::Tooling 3pm" .TH Test2::Manual::Tooling 3pm 2024-05-08 "perl v5.38.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME Test2::Manual::Tooling \- Manual page for tool authors. .SH DESCRIPTION .IX Header "DESCRIPTION" This section covers writing new tools, plugins, and other Test2 components. .SH "TOOL TUTORIALS" .IX Header "TOOL TUTORIALS" .SS "FIRST TOOL" .IX Subsection "FIRST TOOL" Test2::Manual::Tooling::FirstTool \- Introduction to writing tools by cloning \&\fBok()\fR. .SS "MOVING FROM Test::Builder" .IX Subsection "MOVING FROM Test::Builder" Test2::Manual::Tooling::TestBuilder \- This section maps Test::Builder methods to Test2 concepts. .SS "NESTING TOOLS" .IX Subsection "NESTING TOOLS" Test2::Manual::Tooling::Nesting \- How to call other tools from your tool. .SS "TOOLS WITH SUBTESTS" .IX Subsection "TOOLS WITH SUBTESTS" Test2::Manual::Tooling::Subtest \- How write tools that make use of subtests. .SS "TESTING YOUR TEST TOOLS" .IX Subsection "TESTING YOUR TEST TOOLS" Test2::Manual::Tooling::Testing \- How to write tests for your test tools. .SH "PLUGIN TUTORIALS" .IX Header "PLUGIN TUTORIALS" .SS "TAKING ACTION WHEN A NEW TOOL STARTS" .IX Subsection "TAKING ACTION WHEN A NEW TOOL STARTS" Test2::Manual::Tooling::Plugin::ToolStarts \- How to add behaviors that occur when a tool starts work. .SS "TAKING ACTION AFTER A TOOL IS DONE" .IX Subsection "TAKING ACTION AFTER A TOOL IS DONE" Test2::Manual::Tooling::Plugin::ToolCompletes \- How to add behaviors that occur when a tool completes work. .SS "TAKING ACTION AT THE END OF TESTING" .IX Subsection "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). .SS "TAKING ACTION JUST BEFORE EXIT" .IX Subsection "TAKING ACTION JUST BEFORE EXIT" Test2::Manual::Tooling::Plugin::TestExit \- How to safely add pre-exit behaviors. .SH "WRITING A SIMPLE JSONL FORMATTER" .IX Header "WRITING A SIMPLE JSONL FORMATTER" Test2::Manual::Tooling::Formatter \- How to write a custom formatter, in our case a JSONL formatter. .SH "WHERE TO FIND HOOKS AND APIS" .IX Header "WHERE TO FIND HOOKS AND APIS" .IP "global API" 4 .IX Item "global API" Test2::API is the global API. This is primarily used by plugins that provide global behavior. .IP "In hubs" 4 .IX Item "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. .SH "SEE ALSO" .IX Header "SEE ALSO" Test2::Manual \- Primary index of the manual. .SH SOURCE .IX Header "SOURCE" The source code repository for Test2\-Manual can be found at \&\fIhttps://github.com/Test\-More/Test2\-Suite/\fR. .SH MAINTAINERS .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH AUTHORS .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH COPYRIGHT .IX Header "COPYRIGHT" Copyright 2018 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR