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.
EventThe 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 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.
Event::ReportIs Event.
Base class for events carrying a text message of any kind.
Str:D $.message – the event message
Event::CommandIs Event.
Base class of commanding events. Test::Async::Hub handles them specially.
Capture:D $.args – command arguments
Event::TestIs 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 (see test-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 with diag. Not special formatting requirements except for a recommendation for the last line not to end with a newline.
Event::TerminateIs 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.
Event::TelemetryIs Event
Under development yet.
Event::PlanIs 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.
Event::DiagIs Event::Report.
Carries a diagnostics message. See diag in Test::Async::Base.
Event::OkIs Event::Test.
Test passed.
Event::NotOkIs Event::Test.
Test flunked.
Event::SkipIs Event::Test.
Test skipped.
Event::DoneTestingIs Event::Report.
Emitted when testing is completely done.
Event::BailOutIs Event::Report
Emitted when test suite is about to bail out.
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.
Test::Async::Manual, Test::Async::Aggregator, Test::Async::Hub
Vadim Belman <vrurg@cpan.org>