Advanced Extensions
This table lists more advanced extensions that can be used to hook into the Engine itself to:
- intercept tests, skipping them, and modify test results
- intercept specs specs skipping them if required
- post process spec instances after instantiation
- modify the coroutine context used by specs and tests
- apply custom instantiation logic
- filter specs and tests
- adjust test output
| Extension | Description |
|---|---|
| ConstructorExtension | Provides custom logic to instantiate spec classes. An example is the Spring extension constructor extension which autowire's spring beans. |
| TestCaseExtension | Intercepts calls to a test, can skip a test, override the test result, and modify the coroutine context. |
| SpecExtension | Intercepts calls to a spec, can skip a spec, and modify the coroutine context. |
| SpecRefExtension | Intercepts calls to a spec before it is instantiated. Can skip instantiation. |
| DisplayNameFormatterExtension | Can customize the display names of tests used in test output. |
| EnabledExtension | Can provide custom logic to determine if a test is enabled or disabled. |
| ProjectExtension | Intercepts calls to the test engine before a project starts. |
| SpecExecutionOrderExtension | Can sort specs before execution begins to provide a custom spec execution order. |
| TagExtension | Can provide active tags from arbitrary sources. |
| InstantiationErrorListener | Is notified when a spec fails to be instantiated due to some exception. |
| InstantiationListener | Is notified when a spec is successfully instantiated. |
| PostInstantiationExtension | Intercepts specs when they are instantiated, can replace the spec instance and modify coroutine context. |
| IgnoredSpecListener | Is notified when a spec is skipped. |
| SpecFilter | Can provide custom logic to skip a spec. |
| TestFilter | Can provide custom logic to skip a test. |