Event
NAME
Test::Async::Event
ā collection of standard events
SYNOPSIS
use Test::Async::Event;
test-bundle MyBundle {
method foo(Str:D $message) is test-tool {
self.send-test: Event::Ok, :$message
}
}
DESCRIPTION
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.
EXPORTED CLASSES
Class Event
The base event class.
Attributes
$.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.
Methods
Profile
ā returns a Map suitable for passing to an event constructor. The method collects all changed public attributes of an object.gist
,Str
ā stringify event object for reporting.
Class Event::Report
Is Event
.
Base class for events carrying a text message of any kind.
Attributes
Str:D $.message
ā the event message
Class Event::Command
Is Event
.
Base class of commanding events. Test::Async::Hub handles them specially.
Attributes
Capture:D $.args
ā command arguments
Class Event::Test
Is Event::Report
Base class for events reporting test outcomes.
Attributes
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
in Test::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.
Class Event::StageTransition
Emitted each time suite stage is changed.
Attributes
$.from
ā the stage before transition$.to
ā the stage after transition
Class Event::JobsAwaited
Emitted when all pending jobs are completed.
Class Event::Terminate
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.
Attributes
Promise::Vow $.completed
, required ā a promise vow to be kept when event loop finishes processing all remaining events.
Class Event::Telemetry
Is Event
Under development yet.
Class Event::Plan
Is Event::Report
Plan reporting event. Emitted when a suite gets to know the number of tests to be done.
Attributes
Bool $.skip
ā suite is planned for skiping.UInt:D $.planned
, required - number of tests planned.
Class Event::Diag
Is Event::Report
.
Carries a diagnostics message. See diag
in Test::Async::Base.
Class Event::Ok
Is Event::Test
.
Test passed.
Class Event::NotOk
Is Event::Test
.
Test flunked.
Class Event::Skip
Is Event::Test
.
Test skipped.
Class Event::DoneTesting
Is Event::Report
.
Emitted when testing is completely done.
Class Event::BailOut
Is Event::Report
Emitted when test suite is about to bail out.
Command event classes Event::Cmd::*
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.
SEE ALSO
Test::Async::Manual, Test::Async::Aggregator, Test::Async::Hub
AUTHOR
Vadim Belman [email protected]