BundleClassHOW

NAME

Test::Async::Metamodel::BundleClassHOW - metaclass backing custom bundle classes.

DESCRIPTION

This class purpose is to ensure that test tool methods are wrapped into common boilerplate. The boilerplate does the following:

  • determines calling context to make sure any error reported points at user code where the test tool is invoked. As a result it sets tool-caller and caller-ctx attributes of the current suite object.

  • validates if current suite stage allows test tool invokation

  • tries to transition the suite into TSInProgress stage if tool method object has `$.readify` set (see Test::Async::TestTool

  • emits Event::Skip if tool method has its $.skippable set and suite's $.skip-message is defined.

  • otherwise invokes the original test tool method code.

Wrapping doesn't replace the method object itself.

If test tool method object has its wrappable attribute set to False then wrapping doesn't take place. In this case the method must take care of all necessary preparations itself. See implementation of subtest by Test::Async::Base for example.

SEE ALSO

COPYRIGHT

(c) 2020-2023, Vadim Belman <[email protected]>

LICENSE

Artistic License 2.0

See the LICENSE file in this distribution.

Test::Async v0.1.17

Thread-safe testing framework

Authors

  • Vadim Belman

License

Artistic-2.0

Dependencies

Test Dependencies

Provides

  • Test::Async
  • Test::Async::Aggregator
  • Test::Async::Base
  • Test::Async::Decl
  • Test::Async::Event
  • Test::Async::Hub
  • Test::Async::Job
  • Test::Async::JobMgr
  • Test::Async::Metamodel::BundleClassHOW
  • Test::Async::Metamodel::BundleHOW
  • Test::Async::Metamodel::HubHOW
  • Test::Async::Metamodel::ReporterHOW
  • Test::Async::Reporter
  • Test::Async::Reporter::TAP
  • Test::Async::Result
  • Test::Async::TestTool
  • Test::Async::Utils
  • Test::Async::When
  • Test::Async::X

Documentation

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.

Built with Podlite — the markup and publishing tools behind this site.