This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
op.c:S_my_kid: Remove obsolete comment
[perl5.git] / cpan / Test-Simple / lib / Test2.pm
CommitLineData
b4514920
CG
1package Test2;
2use strict;
3use warnings;
4
5our $VERSION = '1.302015';
6
7
81;
9
10__END__
11
12=pod
13
14=encoding UTF-8
15
16=head1 NAME
17
18Test2 - Framework for writing test tools that all work together.
19
20=head1 DESCRIPTION
21
22Test2 is a new testing framework produced by forking L<Test::Builder>,
23completely refactoring it, adding many new features and capabilities.
24
25=head1 GETTING STARTED
26
27If you are interested in writing tests using new tools then you should look at
28L<Test2::Suite>. L<Test::Suite> is a seperate cpan distribution that contains
29many tools implemented on Test2.
30
31If you are interested in writing new tools you should take a look at
32L<Test2::API> first.
33
34=head1 NAMESPACE LAYOUT
35
36This describes the namespace layout for the Test2 ecosystem. Not all the
37namespaces listed here are part of the Test2 distribution, some are implemented
38in L<Test2::Suite>.
39
40=head2 Test2::Tools::
41
42This namespace is for sets of tools. Modules in this namespace should export
43tools like C<ok()> and C<is()>. Most things written for Test2 should go here.
44Modules in this namespace B<MUST NOT> export subs from other tools. See the
45L</Test2::Bundle::> namespace if you want to do that.
46
47=head2 Test2::Plugin::
48
49This namespace is for plugins. Plugins are modules that change or enhance the
50behavior of Test2. An example of a plugin is a module that sets the encoding to
51utf8 globally. Another example is a module that causes a bail-out event after
52the first test failure.
53
54=head2 Test2::Bundle::
55
56This namespace is for bundles of tools and plugins. Loading one of these may
57load multiple tools and plugins. Modules in this namespace should not implement
58tools directly. In general modules in this namespace should load tools and
59plugins, then re-export things into the consumers namespace.
60
61=head2 Test2::Require::
62
63This namespace is for modules that cause a test to be skipped when conditions
64do not allow it to run. Examples would be modules that skip the test on older
65perls, or when non-essential modules have not been installed.
66
67=head2 Test2::Formatter::
68
69Formatters live under this namespace. L<Test2::Formatter::TAP> is the only
70formatter currently. It is acceptible for third party distributions to create
71new formatters under this namespace.
72
73=head2 Test2::Event::
74
75Events live under this namespace. It is considered acceptible for third party
76distributions to add new event types in this namespace.
77
78=head2 Test2::Hub::
79
80Hub subclasses (and some hub utility objects) live under this namespace. It is
81perfectly reasonable for third party distributions to add new hub subclasses in
82this namespace.
83
84=head2 Test2::IPC::
85
86The IPC subsystem lives in this namespace. There are not many good reasons to
87add anything to this namespace, with exception of IPC drivers.
88
89=head3 Test2::IPC::Driver::
90
91IPC drivers live in this namespace. It is fine to create new IPC drivers and to
92put them in this namespace.
93
94=head2 Test2::Util::
95
96This namespace is for general utilities used by testing tools. Please be
97considerate when adding new modules to this namespace.
98
99=head2 Test2::API::
100
101This is for Test2 API and related packages.
102
103=head2 Test2::
104
105The Test2:: namespace is intended for extentions and frameworks. Tools,
106Plugins, etc should not go directly into this namespace. However extentions
107that are used to build tools and plugins may go here.
108
109In short: If the module exports anything that should be run directly by a test
110script it should probably NOT go directly into C<Test2::XXX>.
111
112=head1 SEE ALSO
113
114L<Test2::API> - Primary API functions.
115
116L<Test2::API::Context> - Detailed documentation of the context object.
117
118L<Test2::IPC> - The IPC system used for threading/fork support.
119
120L<Test2::Formatter> - Formatters such as TAP live here.
121
122L<Test2::Event> - Events live in this namespace.
123
124L<Test2::Hub> - All events eventually funnel through a hub. Custom hubs are how
125C<intercept()> and C<run_subtest()> are implemented.
126
127=head1 SOURCE
128
129The source code repository for Test2 can be found at
130F<http://github.com/Test-More/test-more/>.
131
132=head1 MAINTAINERS
133
134=over 4
135
136=item Chad Granum E<lt>exodist@cpan.orgE<gt>
137
138=back
139
140=head1 AUTHORS
141
142=over 4
143
144=item Chad Granum E<lt>exodist@cpan.orgE<gt>
145
146=back
147
148=head1 COPYRIGHT
149
150Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
151
152This program is free software; you can redistribute it and/or
153modify it under the same terms as Perl itself.
154
155See F<http://dev.perl.org/licenses/>
156
157=cut