The Roadmap defines what features are currently being worked on and what's next!
0.4.0 features - Released 2021-05-09
Ability to disable a test, TestCase, or TestSuite#41(Implemented with #63)
Include more Assertions to those that come out-of-the-box.#42 (Implemented with #69)
Randomize the order in which tests are ran.#43 (Implemented with #68)
Show the time and memory required for running your tests in result output.#48 (Implemented with #64)
Ensure tests that output anything are marked as failing.#44 (Implemented with #67)
Allow for a TestCase to expect that an exception should be thrown.#45 (Implemented with #70)
0.5.0 features - Released 2021-05-26
Introduce an Amp\ByteStream\OutputStream decorator for creating rich terminal output and improve the quality of the output for the default result printer.#78 (Implemented with labrador-kennel/styled-byte-stream)
Refactor Parser implementation to use asynchronous I/O.#62 (Implemented with #88)
Introduce a comprehensive statistics API so appropriate events can provide detailed information about test processing.#79 (Implemented with #91)
Allow for a TestCase to expect that a certain number of assertions should have been made.#81 (Implemented with #95)
Allow for a TestCase to expect that a test finishes before a given timeout has reached.#82 (Implemented with #96)
0.6.0 features - Active Sprint
Introduce the concept of a "mock bridge" that supports the ability to use a variety of mocking systems. #83 (Implemented with #100)
Allow hooks to define the order in which they should be ran.#84 (Implemented with #103)
Allow TestSuite to define which TestCase should be associated by namespace.#85 (Implemented with #104)
Introduce a DisabledIf(string $method, ?string $reason = null) attribute that will only disable the test, TestCase, or TestSuite if the $method returns true. #86
Better differentiate between a test failing with a TestFailedException and a test failing because of an error that was unexpected.#99 (Implemented with #102)
Allow ability to override which configuration file should be used on the command line.
Implement ability to define your own plugins defined in async-unit.json that should be registered with the Application automatically. #80
Allow filtering the tests that are run based on a TestSuite, TestCase, or test name. #87
Show information about which data set was used when a #[DataProvider] test fails. #98
Design a comprehensive CLI display for showing a variety of test information.
Update the AssertionFailedException to not require custom methods to display appropriate data. All information that needs to be displayed for a given exception should be part of the getMessage()
Introduce some functionality that allows showing the diff between things that are/should be diffable.
Introduce a concrete logging implementation that can be defined by the async-unit.json configuration. #11
Make expectations on active Loop watchers before and after a test is processed
These are features we'd like to support at some point but are not sure how they would be implemented or where they should fall within the timeline.
Support code coverage
Build artifacts for common test reporting formats
Run each TestSuite in its own parallel Worker
Cache the results of the parser step so we can skip it if possible