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