1Test2::Suite(3)       User Contributed Perl Documentation      Test2::Suite(3)
2
3
4

NAME

6       Test2::Suite - Distribution with a rich set of tools built upon the
7       Test2 framework.
8

DESCRIPTION

10       Rich set of tools, plugins, bundles, etc built upon the Test2 testing
11       library. If you are interested in writing tests, this is the
12       distribution for you.
13
14   WHAT ARE TOOLS, PLUGINS, AND BUNDLES?
15       TOOLS
16           Tools are packages that export functions for use in test files.
17           These functions typically generate events. Tools SHOULD NEVER alter
18           behavior of other tools, or the system in general.
19
20       PLUGINS
21           Plugins are packages that produce effects, or alter behavior of
22           tools. An example would be a plugin that causes the test to bail
23           out after the first failure. Plugins SHOULD NOT export anything.
24
25       BUNDLES
26           Bundles are collections of tools and plugins. A bundle should load
27           and re-export functions from Tool packages. A bundle may also load
28           and configure any number of plugins.
29
30       If you want to write something that both exports new functions, and
31       effects behavior, you should write both a Tools distribution, and a
32       Plugin distribution, then a Bundle that loads them both. This is
33       important as it helps avoid the problem where a package exports much-
34       desired tools, but also produces undesirable side effects.
35

INCLUDED BUNDLES

37       Test2::V#
38           These do not live in the bundle namespace as they are the primary
39           ways to use Test2::Suite.
40
41           The current latest is Test2::V0.
42
43               use Test2::V0;
44               # strict and warnings are on for you now.
45
46               ok(...);
47
48               # Note: is does deep checking, unlike the 'is' from Test::More.
49               is(...);
50
51               ...
52
53               done_testing;
54
55           This bundle includes every tool listed in the "INCLUDED TOOLS"
56           section below, except for Test2::Tools::ClassicCompare. This bundle
57           provides most of what anyone writing tests could need. This is also
58           the preferred bundle/toolset of the Test2 author.
59
60           See Test2::V0 for complete documentation.
61
62       Extended
63           ** Deprecated ** See Test2::V0
64
65               use Test2::Bundle::Extended;
66               # strict and warnings are on for you now.
67
68               ok(...);
69
70               # Note: is does deep checking, unlike the 'is' from Test::More.
71               is(...);
72
73               ...
74
75               done_testing;
76
77           This bundle includes every tool listed in the "INCLUDED TOOLS"
78           section below, except for Test2::Tools::ClassicCompare. This bundle
79           provides most of what anyone writing tests could need. This is also
80           the preferred bundle/toolset of the Test2 author.
81
82           See Test2::Bundle::Extended for complete documentation.
83
84       More
85               use Test2::Bundle::More;
86               use strict;
87               use warnings;
88
89               plan 3; # Or you can use done_testing at the end
90
91               ok(...);
92
93               is(...); # Note: String compare
94
95               is_deeply(...);
96
97               ...
98
99               done_testing; # Use instead of plan
100
101           This bundle is meant to be a mostly drop-in replacement for
102           Test::More.  There are some notable differences to be aware of
103           however. Some exports are missing: "eq_array", "eq_hash", "eq_set",
104           $TODO, "explain", "use_ok", "require_ok". As well it is no longer
105           possible to set the plan at import: "use .. tests => 5". $TODO has
106           been replaced by the "todo()" function. Planning is done using
107           "plan", "skip_all", or "done_testing".
108
109           See Test2::Bundle::More for complete documentation.
110
111       Simple
112               use Test2::Bundle::Simple;
113               use strict;
114               use warnings;
115
116               plan 1;
117
118               ok(...);
119
120           This bundle is meant to be a mostly drop-in replacement for
121           Test::Simple.  See Test2::Bundle::Simple for complete
122           documentation.
123

INCLUDED TOOLS

125       Basic
126           Basic provides most of the essential tools previously found in
127           Test::More.  However it does not export any tools used for
128           comparison. The basic "pass", "fail", "ok" functions are present,
129           as are functions for planning.
130
131           See Test2::Tools::Basic for complete documentation.
132
133       Compare
134           This provides "is", "like", "isnt", "unlike", and several
135           additional helpers. Note: These are all deep comparison tools and
136           work like a combination of Test::More's "is" and "is_deeply".
137
138           See Test2::Tools::Compare for complete documentation.
139
140       ClassicCompare
141           This provides Test::More flavored "is", "like", "isnt", "unlike",
142           and "is_deeply". It also provides "cmp_ok".
143
144           See Test2::Tools::ClassicCompare for complete documentation.
145
146       Class
147           This provides functions for testing objects and classes, things
148           like "isa_ok".
149
150           See Test2::Tools::Class for complete documentation.
151
152       Defer
153           This provides functions for writing test functions in one place,
154           but running them later. This is useful for testing things that run
155           in an altered state.
156
157           See Test2::Tools::Defer for complete documentation.
158
159       Encoding
160           This exports a single function that can be used to change the
161           encoding of all your test output.
162
163           See Test2::Tools::Encoding for complete documentation.
164
165       Exports
166           This provides tools for verifying exports. You can verify that
167           functions have been imported, or that they have not been imported.
168
169           See Test2::Tools::Exports for complete documentation.
170
171       Mock
172           This provides tools for mocking objects and classes. This is based
173           largely on Mock::Quick, but several interface improvements have
174           been added that cannot be added to Mock::Quick itself without
175           breaking backwards compatibility.
176
177           See Test2::Tools::Mock for complete documentation.
178
179       Ref This exports tools for validating and comparing references.
180
181           See Test2::Tools::Ref for complete documentation.
182
183       Spec
184           This is an RSPEC implementation with concurrency support.
185
186           See Test2::Tools::Spec for more details.
187
188       Subtest
189           This exports tools for running subtests.
190
191           See Test2::Tools::Subtest for complete documentation.
192
193       Target
194           This lets you load the package(s) you intend to test, and alias
195           them into constants/package variables.
196
197           See Test2::Tools::Target for complete documentation.
198

INCLUDED PLUGINS

200       BailOnFail
201           The much requested "bail-out on first failure" plugin. When this
202           plugin is loaded, any failure will cause the test to bail out
203           immediately.
204
205           See Test2::Plugin::BailOnFail for complete documentation.
206
207       DieOnFail
208           The much requested "die on first failure" plugin. When this plugin
209           is loaded, any failure will cause the test to die immediately.
210
211           See Test2::Plugin::DieOnFail for complete documentation.
212
213       ExitSummary
214           This plugin gives you statistics and diagnostics at the end of your
215           test in the event of a failure.
216
217           See Test2::Plugin::ExitSummary for complete documentation.
218
219       SRand
220           Use this to set the random seed to a specific seed, or to the
221           current date.
222
223           See Test2::Plugin::SRand for complete documentation.
224
225       UTF8
226           Turn on utf8 for your testing. This sets the current file to be
227           utf8, it also sets STDERR, STDOUT, and your formatter to all output
228           utf8.
229
230           See Test2::Plugin::UTF8 for complete documentation.
231

INCLUDED REQUIREMENT CHECKERS

233       AuthorTesting
234           Using this package will cause the test file to be skipped unless
235           the AUTHOR_TESTING environment variable is set.
236
237           See Test2::Require::AuthorTesting for complete documentation.
238
239       EnvVar
240           Using this package will cause the test file to be skipped unless a
241           custom environment variable is set.
242
243           See Test2::Require::EnvVar for complete documentation.
244
245       Fork
246           Using this package will cause the test file to be skipped unless
247           the system is capable of forking (including emulated forking).
248
249           See Test2::Require::Fork for complete documentation.
250
251       RealFork
252           Using this package will cause the test file to be skipped unless
253           the system is capable of true forking.
254
255           See Test2::Require::RealFork for complete documentation.
256
257       Module
258           Using this package will cause the test file to be skipped unless
259           the specified module is installed (and optionally at a minimum
260           version).
261
262           See Test2::Require::Module for complete documentation.
263
264       Perl
265           Using this package will cause the test file to be skipped unless
266           the specified minimum perl version is met.
267
268           See Test2::Require::Perl for complete documentation.
269
270       Threads
271           Using this package will cause the test file to be skipped unless
272           the system has threading enabled.
273
274           Note: This will not turn threading on for you.
275
276           See Test2::Require::Threads for complete documentation.
277

SEE ALSO

279       See the Test2 documentation for a namespace map. Everything in this
280       distribution uses Test2.
281
282       Test2::Manual is the Test2 Manual.
283

CONTACTING US

285       Many Test2 developers and users lurk on <irc://irc.perl.org/#perl>. We
286       also have a slack team that can be joined by anyone with an "@cpan.org"
287       email address <https://perl-test2.slack.com/> If you do not have an
288       "@cpan.org" email you can ask for a slack invite by emailing Chad
289       Granum <exodist@cpan.org>.
290

SOURCE

292       The source code repository for Test2-Suite can be found at
293       https://github.com/Test-More/Test2-Suite/.
294

MAINTAINERS

296       Chad Granum <exodist@cpan.org>
297

AUTHORS

299       Chad Granum <exodist@cpan.org>
300
302       Copyright 2018 Chad Granum <exodist@cpan.org>.
303
304       This program is free software; you can redistribute it and/or modify it
305       under the same terms as Perl itself.
306
307       See http://dev.perl.org/licenses/
308
309
310
311perl v5.28.1                      2018-12-04                   Test2::Suite(3)
Impressum