1Test::Stream::Manual::CUosmepronCeonnttsr(i3b)uted PerlTDeosctu:m:eSnttraetaimo:n:Manual::Components(3)
2
3
4

NAME

6       Test::Stream::Manual::Components - Categorization and overview of
7       Test::Stream components and modules.
8

DESCRIPTION

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

ESSENTIAL INFRASTRUCTURE

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

PRIMARY INTERFACE

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

BUNDLES

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

PLUGINS

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 ok().
213
214       Test::Stream::Plugin::Defer
215           Test::Stream::Plugin::Defer can be used to make assertions that are
216           stored and run at a later time. Test::Stream::DeferredTests is used
217           under the hood.
218
219       Test::Stream::Plugin::DieOnFail
220           Test::Stream::Plugin::DieOnFail throw an exception on the first
221           test failure.
222
223       Test::Stream::Plugin::Exception
224           Test::Stream::Plugin::Exception has tools for intercepting and
225           verifying exceptions.
226
227       Test::Stream::Plugin::ExitSummary
228           Test::Stream::Plugin::ExitSummary provides useful deubgging
229           information at the end of a test run.
230
231       Test::Stream::Plugin::Grab
232           Test::Stream::Plugin::Grab can be used to intercept Test::Stream
233           events without adding any scope.
234
235       Test::Stream::Plugin::IPC
236           Test::Stream::Plugin::IPC is the interface into Test::Stream's IPC
237           system.
238
239       Test::Stream::Plugin::Intercept
240           Test::Stream::Plugin::Intercept is used to intercept Test::Stream
241           events for testing purposes.
242
243           The Test::Stream::Hub::Interceptor and
244           Test::Stream::Hub::Interceptor::Terminator modules are used under
245           the hood to achieve this functionality.
246
247       Test::Stream::Plugin::LoadPlugin
248           Test::Stream::Plugin::LoadPlugin can be used to load plugins at
249           run-time, primarily useful when testing plugins.
250
251       Test::Stream::Plugin::Mock
252           Test::Stream::Plugin::Mock is the mocking library included with
253           Test::Stream. It is based off of Mock::Quick.
254
255           Test::Stream::Mock is used under the hood.
256
257       Test::Stream::Plugin::SRand
258           Test::Stream::Plugin::SRand can be used to set the random seed to
259           the current date. This is useful for making a test run consistent
260           over any given day.
261
262       Test::Stream::Plugin::SkipWithout
263           Test::Stream::Plugin::SkipWithout can be used to skip test files
264           that require modules that may not be installed.
265
266       Test::Stream::Plugin::Spec
267           Experimental: This plugin is still considered experimental. It is
268           included in the dist because it is used heavily in the tests for
269           Test::Stream. This is still considered experimental because the API
270           is not completely finalized, but it does work well, is fully
271           tested, and will not be removed.
272
273           Test::Stream::Plugin::Spec provides RSPEC like functionality. This
274           is essentially a much more advanced form of subtests.
275
276           See also:
277
278           Test::Stream::Workflow
279           Test::Stream::Workflow::Unit
280           Test::Stream::Workflow::Meta
281           Test::Stream::Workflow::Runner
282           Test::Stream::Workflow::Task
283       Test::Stream::Plugin::Subtest
284           Test::Stream::Plugin::Subtest is used for Test::More style
285           subtests.
286
287           Test::Stream::Hub::Subtest is used under the hood.
288
289       Test::Stream::Plugin::TAP
290           Test::Stream::Plugin::TAP is used to turn on TAP output.
291
292       Test::Stream::Plugin::UTF8
293           Test::Stream::Plugin::UTF8 is used to turn on UTF8 globaly.
294
295       Test::Stream::Plugin::Warnings
296           Test::Stream::Plugin::Warnings provides tools for intercepting and
297           validating warnings.
298

SOURCE

300       The source code repository for Test::Stream can be found at
301       http://github.com/Test-More/Test-Stream/.
302

MAINTAINERS

304       Chad Granum <exodist@cpan.org>
305

AUTHORS

307       Chad Granum <exodist@cpan.org>
308
310       Copyright 2015 Chad Granum <exodist7@gmail.com>.
311
312       This program is free software; you can redistribute it and/or modify it
313       under the same terms as Perl itself.
314
315       See http://dev.perl.org/licenses/
316
317
318
319perl v5.38.0                      2023-07-21Test::Stream::Manual::Components(3)
Impressum