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
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

SOURCE

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

MAINTAINERS

305       Chad Granum <exodist@cpan.org>
306

AUTHORS

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.30.1                      2020-01-30Test::Stream::Manual::Components(3)
Impressum