1Test::Stream::Manual::CUosmepronCeonnttsr(i3b)uted PerlTDeosctu:m:eSnttraetaimo:n:Manual::Components(3)
2
3
4
6 Test::Stream::Manual::Components - Categorization and overview of
7 Test::Stream components and modules.
8
10 This document categorizes the modues included in the Test-Stream
11 distribution. This document also gives basic information about each
12 component, and what modules they connect with. This document is
13 primarily useful for maintainers and test tool authors.
14
16 The modules in this section are the most critical. These modules are
17 the heart of Test::Stream.
18
19 Test::Stream::Capabilities
20 The Test::Stream::Capabilities module detects various capabilities
21 of the current system, this includes the ability to fork or use
22 threads.
23
24 Test::Stream::Context
25 The Test::Stream::Context module is easily the most important
26 module in Test::Stream. The context object is the primary interface
27 for tool authors. The context object ties everything together and
28 ensures events get to the correct hub. The context object also
29 makes it possible to report the filename and line numbers of
30 errors.
31
32 Test::Stream::DebugInfo
33 The Test::Stream::DebugInfo is used by the context object to track
34 filename, line numbers, todo status, and other information that is
35 important when reporting a test failure.
36
37 Test::Stream::Event
38 The Test::Stream::Event module is the base class for all events,
39 such as "Ok", "Diag", etc.
40
41 Test::Stream::Exporter
42 The Test::Stream::Exporter module is used by Test::Stream to
43 accomplish export behavior well beyond what Exporter is capable of.
44
45 The Test::Stream::Exporter::Meta module is a key component of
46 Test::Stream::Exporter.
47
48 Test::Stream::Formatter::TAP
49 Test::Stream::Formatter::TAP is the TAP output formatter. This
50 module is used whenever Test::Stream outputs TAP.
51
52 Test::Stream::HashBase
53 Test::Stream::HashBase is the object builder used in most
54 Test::Stream modules. It provides constructors and accessor
55 generators.
56
57 Test::Stream::Hub
58 Test::Stream::Hub is responsible for routing events to output
59 handlers. This module also provides several hooks for testing
60 tools.
61
62 Test::Stream::IPC
63 Test::Stream::IPC is responsible for sending events between
64 processes and threads. Test::Stream::IPC::Files is the default IPC
65 driver.
66
67 Test::Stream::Stack
68 The Test::Stream::Stack module manages a stack of hubs. In
69 Test::Stream there can be several hubs and they all live on a stack
70 like this. Events typically go to whichever hub is on top.
71
72 Test::Stream::State
73 Test::Stream::State tracks a tests state, this includes the number
74 of tests, the number of passes, and the number of failures.
75
76 Test::Stream::Sync
77 The Test::Stream::Sync module is where global shared state is
78 managed.
79
80 Test::Stream::Table
81 Test::Stream::Table is used to generate nicely formatted tables.
82 Test::Stream::Table::LineBreak breaks lines of text so that they
83 fit in a table.
84
85 Test::Stream::Util
86 Test::Stream::Util is a collection of general purpose functions
87 used in almost every component of Test::Stream.
88
89 ESSENTIAL EVENT TYPES
90 Test::Stream::Event::Bail
91 Test::Stream::Event::Bail is an event that is issued when there is
92 a catastrophic failure and all testing should end.
93
94 Test::Stream::Event::Diag
95 Test::Stream::Event::Diag is used to output a message that should
96 always be displayed.
97
98 Test::Stream::Event::Exception
99 Test::Stream::Event::Exception is used when an exception is cought
100 and needs to be reported.
101
102 Test::Stream::Event::Note
103 Test::Stream::Event::Note is used to output an informational
104 message that does not always need to be seen.
105
106 Test::Stream::Event::Ok
107 Test::Stream::Event::Ok is used to represent a single pass or
108 failure.
109
110 Test::Stream::Event::Plan
111 Test::Stream::Event::Plan is used when a plan is set.
112
113 Test::Stream::Event::Subtest
114 Test::Stream::Event::Subtest is used to run an isolated sub-group
115 of tests.
116
117 Test::Stream::Event::Waiting
118 Test::Stream::Event::Waiting is used by the IPC system to pass
119 along a note that the primary process/thread is finished.
120
122 These are the modules people workng with Test::Stream are most likely
123 to interact with. This includes test authors, as well as tool authors.
124
125 Test::Stream
126 Test::Stream is a loader that bootstraps the infrastructure, then
127 loads the requested bundles and plugins.
128
129 Test::Stream::Bundle
130 Test::Stream::Bundle is the base class for Test::Stream bundles.
131
132 Test::Stream::Plugin
133 Test::Stream::Plugin is the base class for Test::Stream plugins.
134
136 These are collections of plugins and options.
137
138 Test::Stream::Bundle::Classic
139 Test::Stream::Bundle::Classic is a bundle that closely resembles
140 Test::More.
141
142 Test::Stream::Bundle::V1
143 Test::Stream::Bundle::V1 is the bundle used by the Test::Stream
144 author in Test::Stream's test suite..
145
146 Test::Stream::Bundle::SpecTester
147 Test::Stream::Bundle::SpecTester is used a lot on internal self-
148 testing.
149
150 Test::Stream::Bundle::Tester
151 Test::Stream::Bundle::Tester is useful when writing tests for
152 testing tools.
153
155 Test::Stream::Plugin::AuthorTest
156 Test::Stream::Plugin::AuthorTest is used to write tests that should
157 be run by a modules author, but are not required to run when
158 installing the module from cpan.
159
160 Test::Stream::Plugin::BailOnFail
161 Test::Stream::Plugin::BailOnFail will cause the test suite to bail
162 out on the first failure.
163
164 Test::Stream::Plugin::CanFork
165 Test::Stream::Plugin::CanFork is used to write tests that require
166 fork, the tests are skipped if forking is not available.
167
168 Test::Stream::Plugin::CanThread
169 Test::Stream::Plugin::CanThread is used to write tests that requre
170 ithreads, the tests are skipped if threads are not available.
171
172 Test::Stream::Plugin::Capabilities
173 Test::Stream::Plugin::Capabilities is an interface into
174 Test::Stream::Capabilities.
175
176 Test::Stream::Plugin::Capture
177 Test::Stream::Plugin::Capture can be used to intercept STDERR and
178 STDOUT.
179
180 Test::Stream::Plugin::Class
181 Test::Stream::Plugin::Class is used to specify what class is being
182 tested.
183
184 Test::Stream::Plugin::Compare
185 Test::Stream::Plugin::Compare is used for deep comparison. This is
186 the code responsible for "is()" and "like()".
187
188 This plugin also has the following infrastructure modules:
189
190 Test::Stream::Compare::Array
191 Test::Stream::Compare::Custom
192 Test::Stream::Compare::Event
193 Test::Stream::Compare::EventMeta
194 Test::Stream::Compare::Hash
195 Test::Stream::Compare::Meta
196 Test::Stream::Compare::Object
197 Test::Stream::Compare::Pattern
198 Test::Stream::Compare::Ref
199 Test::Stream::Compare::Regex
200 Test::Stream::Compare::Scalar
201 Test::Stream::Compare::Set
202 Test::Stream::Compare::Value
203 Test::Stream::Compare::Wildcard
204 Test::Stream::Compare
205 Test::Stream::Delta
206 Test::Stream::Plugin::Context
207 Test::Stream::Plugin::Context is a plugin interface into the
208 Test::Stream::Context module.
209
210 Test::Stream::Plugin::Core
211 Test::Stream::Plugin::Core provides the most common and simple
212 testing tools. This module is resposnible for functions like
213 "ok()".
214
215 Test::Stream::Plugin::Defer
216 Test::Stream::Plugin::Defer can be used to make assertions that are
217 stored and run at a later time. Test::Stream::DeferredTests is used
218 under the hood.
219
220 Test::Stream::Plugin::DieOnFail
221 Test::Stream::Plugin::DieOnFail throw an exception on the first
222 test failure.
223
224 Test::Stream::Plugin::Exception
225 Test::Stream::Plugin::Exception has tools for intercepting and
226 verifying exceptions.
227
228 Test::Stream::Plugin::ExitSummary
229 Test::Stream::Plugin::ExitSummary provides useful deubgging
230 information at the end of a test run.
231
232 Test::Stream::Plugin::Grab
233 Test::Stream::Plugin::Grab can be used to intercept Test::Stream
234 events without adding any scope.
235
236 Test::Stream::Plugin::IPC
237 Test::Stream::Plugin::IPC is the interface into Test::Stream's IPC
238 system.
239
240 Test::Stream::Plugin::Intercept
241 Test::Stream::Plugin::Intercept is used to intercept Test::Stream
242 events for testing purposes.
243
244 The Test::Stream::Hub::Interceptor and
245 Test::Stream::Hub::Interceptor::Terminator modules are used under
246 the hood to achieve this functionality.
247
248 Test::Stream::Plugin::LoadPlugin
249 Test::Stream::Plugin::LoadPlugin can be used to load plugins at
250 run-time, primarily useful when testing plugins.
251
252 Test::Stream::Plugin::Mock
253 Test::Stream::Plugin::Mock is the mocking library included with
254 Test::Stream. It is based off of Mock::Quick.
255
256 Test::Stream::Mock is used under the hood.
257
258 Test::Stream::Plugin::SRand
259 Test::Stream::Plugin::SRand can be used to set the random seed to
260 the current date. This is useful for making a test run consistent
261 over any given day.
262
263 Test::Stream::Plugin::SkipWithout
264 Test::Stream::Plugin::SkipWithout can be used to skip test files
265 that require modules that may not be installed.
266
267 Test::Stream::Plugin::Spec
268 Experimental: This plugin is still considered experimental. It is
269 included in the dist because it is used heavily in the tests for
270 Test::Stream. This is still considered experimental because the API
271 is not completely finalized, but it does work well, is fully
272 tested, and will not be removed.
273
274 Test::Stream::Plugin::Spec provides RSPEC like functionality. This
275 is essentially a much more advanced form of subtests.
276
277 See also:
278
279 Test::Stream::Workflow
280 Test::Stream::Workflow::Unit
281 Test::Stream::Workflow::Meta
282 Test::Stream::Workflow::Runner
283 Test::Stream::Workflow::Task
284 Test::Stream::Plugin::Subtest
285 Test::Stream::Plugin::Subtest is used for Test::More style
286 subtests.
287
288 Test::Stream::Hub::Subtest is used under the hood.
289
290 Test::Stream::Plugin::TAP
291 Test::Stream::Plugin::TAP is used to turn on TAP output.
292
293 Test::Stream::Plugin::UTF8
294 Test::Stream::Plugin::UTF8 is used to turn on UTF8 globaly.
295
296 Test::Stream::Plugin::Warnings
297 Test::Stream::Plugin::Warnings provides tools for intercepting and
298 validating warnings.
299
301 The source code repository for Test::Stream can be found at
302 http://github.com/Test-More/Test-Stream/.
303
305 Chad Granum <exodist@cpan.org>
306
308 Chad Granum <exodist@cpan.org>
309
311 Copyright 2015 Chad Granum <exodist7@gmail.com>.
312
313 This program is free software; you can redistribute it and/or modify it
314 under the same terms as Perl itself.
315
316 See http://dev.perl.org/licenses/
317
318
319
320perl v5.32.0 2020-07-28Test::Stream::Manual::Components(3)