README

NAME

Test::Async - asynchronous, thread-sage testing

SYNOPSYS

use Test::Async;
plan 2, :parallel;
    subtest "Async 1" => {
        plan 1;
        pass "a test";
    }
    subtest "Async 2" => {
        plan 1;
        pass "another test";
    }

DESCRIPTION

Test::Async provides a framework and a base set of tests tools compatible with the standard Raku Test module. But contrary to the standard, Test::Async has been developed with two primary goals in mind: concurrency and extensibility.

Here is the key features provided:

  • event-driven, threaded, and OO core

  • easy development of 3rd party test bundles

  • asynchronous and/or random execution of subtests

  • support of threaded user code

The SYNOPSYS section provides an example where two subtests would be started in parallel, each in its own thread. This allows to achieve two goals: speed up big test suits by splitting them in smaller chunks; and testing for possible concurrency problems in tested code.

With

plan $count, :random;

subtests will be executed in random order. In this mode it is possible to catch another class of errors caused by code being dependent on the order execution.

It is also possible to combine both parallel and random modes of operation.

READ MORE

Test::Async::Manual, Test::Async::CookBook, Test::Async, Test::Async::Base

Test::Async v0.0.16

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

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