dwww Home | Manual pages | Find package

Test2:...esting(3perl)  Perl Programmers Reference Guide Test2:...esting(3perl)

NAME
       Test2::Manual::Testing - Hub for documentation about writing tests with
       Test2.

DESCRIPTION
       This document outlines all the tutorials and POD that cover writing
       tests. This section does not cover any Test2 internals, nor does it
       cover how to write new tools, for that see Test2::Manual::Tooling.

NAMESPACE MAP
       When writing tests there are a couple namespaces to focus on:

       Test2::Tools::*
           This  is  where  toolsets  can be found. A toolset exports functions
           that help you make assertions about your code.  Toolsets  will  only
           export functions, they should not ever have extra/global effects.

       Test2::Plugins::*
           This  is where plugins live. Plugins should not export anything, but
           instead will introduce or alter  behaviors  for  Test2  in  general.
           These behaviors may be lexically scoped, or they may be global.

       Test2::Bundle::*
           Bundles  combine  toolsets  and  plugins  together  to  reduce  your
           boilerplate. First time test writers are encouraged  to  start  with
           the Test2::V0 bundle (which is an exception to the namespace rule as
           it  does  not  live  under  "Test2::Bundle::"). If you find yourself
           loading several plugins and toolsets over and over again  you  could
           benefit from writing your own bundle.

       Test2::Require::*
           This  namespace  contains  modules that will cause a test to skip if
           specific conditions are not met. Use this if  you  have  tests  that
           only  run  on  specific perl versions, or require external libraries
           that may not always be available.

LISTING DEPENDENCIES
       When you use Test2, specifically things  included  in  Test2::Suite  you
       need  to list them in your modules test dependencies. It is important to
       note that you should list the tools/plugins/bundles you need, you should
       not simply list Test2::Suite  as  your  dependency.  Test2::Suite  is  a
       living  distribution intended to represent the "current" best practices.
       As tools, plugins, and bundles evolve, old ones will become  discouraged
       and potentially be moved from Test2::Suite into their own distributions.

       One  goal  of Test2::Suite is to avoid breaking backwards compatibility.
       Another goal is to always improve by replacing bad designs  with  better
       ones.   When  necessary  Test2::Suite  will  break  old modules out into
       separate dists and define new ones, typically  with  a  new  bundle.  In
       short,  if we feel the need to break something we will do so by creating
       a new bundle, and discouraging the old one, but we will  not  break  the
       old one.

       So  for  example,  if you use Test2::V0, and Dist::Zilla you should have
       this in your config:

           [Prereqs / TestRequires]
           Test2::V0 = 0.000060

       You SHOULD NOT do this:

           [Prereqs / TestRequires]
           Test2::Suite = 0.000060

       Because Test2::V0 might not always be part of Test2::Suite.

       When writing new tests you should often check Test2::Suite to  see  what
       the current recommended bundle is.

       Dist::Zilla

           [Prereqs / TestRequires]
           Test2::V0 = 0.000060

       ExtUtils::MakeMaker

           my %WriteMakefileArgs = (
             ...,
             "TEST_REQUIRES" => {
               "Test2::V0" => "0.000060"
             },
             ...
           );

       Module::Install

           test_requires 'Test2::V0' => '0.000060';

       Module::Build

           my $build = Module::Build->new(
               ...,
               test_requires => {
                   "Test2::V0" => "0.000060",
               },
               ...
           );

TUTORIALS
   SIMPLE/INTRODUCTION TUTORIAL
       Test2::Manual::Testing::Introduction is an introduction to writing tests
       using the Test2 tools.

   MIGRATING FROM TEST::BUILDER and TEST::MORE
       Test2::Manual::Testing::Migrating Is a tutorial for converting old tests
       that  use  Test::Builder  or  Test::More to the newer Test2 way of doing
       things.

   ADVANCED PLANNING
       Test2::Manual::Testing::Planning is a tutorial on the many ways to set a
       plan.

   TODO TESTS
       Test2::Manual::Testing::Todo is a tutorial for markings tests as TODO.

   SUBTESTS
       COMING SOON.

   COMPARISONS
       COMING SOON.

       SIMPLE COMPARISONS

       COMING SOON.

       ADVANCED COMPARISONS

       COMING SOON.

   TESTING EXPORTERS
       COMING SOON.

   TESTING CLASSES
       COMING SOON.

   TRAPPING
       COMING SOON.

       TRAPPING EXCEPTIONS

       COMING SOON.

       TRAPPING WARNINGS

       COMING SOON.

   DEFERRED TESTING
       COMING SOON.

   MANAGING ENCODINGS
       COMING SOON.

   AUTO-ABORT ON FAILURE
       COMING SOON.

   CONTROLLING RANDOM BEHAVIOR
       COMING SOON.

   WRITING YOUR OWN BUNDLE
       COMING SOON.

TOOLSET DOCUMENTATION
       COMING SOON.

PLUGIN DOCUMENTATION
       COMING SOON.

BUNDLE DOCUMENTATION
       COMING SOON.

REQUIRE DOCUMENTATION
       COMING SOON.

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/Test2-Suite/.

MAINTAINERS
       Chad Granum <exodist@cpan.org>

AUTHORS
       Chad Granum <exodist@cpan.org>

COPYRIGHT
       Copyright 2018 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/

perl v5.40.1                       2026-08-30            Test2:...esting(3perl)

Generated by dwww version 1.16 on Sat Oct 3 06:47:42 CEST 2026.