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