Test::Async::Event
– collection of standard events
use Test::Async::Event;
test-bundle MyBundle {
method foo(Str:D $message) is test-tool {
self.send-test: Event::Ok, :$message
}
}
General information about Test::Async
event management can be found in Test::Async::Manual
.
Events are objects of classes derived from Event
class. This module defines events used by the core. In general, all event classes can be conventionally split into the following groups:
-
informative – events signalling about some state changes. Like, for example, suite termination.
-
reporting - events bearing a message to be reported to user.
-
commands – those which tell the core to perform an action.
-
tests – outcomes of individual test tools.
The base event class.
-
$.origin
– event originating object. Defaults to the current test suite object. -
Int:D $.id
– event id, a sequential number. -
Instant:D $.time
– the moment when event object was created.
-
Profile
– returns aMap
suitable for passing to an event constructor. The method collects all changed public attributes of an object. -
gist
,Str
– stringify event object for reporting.
Is Event
.
Base class for events carrying a text message of any kind.
Str:D $.message
– the event message
Is Event
.
Base class of commanding events. Test::Async::Hub
handles them specially.
Capture:D $.args
– command arguments
Is Event::Report
Base class for events reporting test outcomes.
-
Int:D $.test-id
, required – test number -
Str $.todo
– message to use if test is marked as TODO. -
Str $.flunks
– message to use if test is marked as anticipated failure (seetest-flunks
inTest::Async::Base
. -
CallFrame:D $.caller
, required – position in user code where the test was called. -
@.child-messages
– messages from child suites. Each entry should be a single line ending with newline. -
@.comments
– comments for the test. Normally expected to be reported withdiag
. Not special formatting requirements except for a recommendation for the last line not to end with a newline.
Is Event
.
This is the only kind of event which Term::Async::Aggregator
role cares about. It tells the event loop to pull any remaining events from the queue and dispatch them immediately. Then it fulfills event's promise.
Promise::Vow $.completed
, required – a promise vow to be kept when event loop finishes processing all remaining events.
Is Event
Under development yet.
Is Event::Report
Plan reporting event. Emitted when a suite gets to know the number of tests to be done.
-
Bool $.skip
– suite is planned for skiping. -
UInt:D $.planned
, required - number of tests planned.
Is Event::Report
.
Carries a diagnostics message. See diag
in Test::Async::Base
.
Is Event::Test
.
Test passed.
Is Event::Test
.
Test flunked.
Is Event::Test
.
Test skipped.
Is Event::Report
.
Emitted when testing is completely done.
Is Event::Report
Emitted when test suite is about to bail out.
A bundle of events used internally for commands. See Test::Async::Hub
and possibly other modules. The set of command events is not standartized and subject for changes.
Test::Async::Manual
, Test::Async::Aggregator
, Test::Async::Hub
Vadim Belman vrurg@cpan.org