Package io.quarkus.test.common
Interface QuarkusTestResourceLifecycleManager
- All Known Subinterfaces:
QuarkusTestResourceConfigurableLifecycleManager<ConfigAnnotation>
public interface QuarkusTestResourceLifecycleManager
Manage the lifecycle of a test resource, for instance a H2 test server.
These resources are started before the first test is run, and are closed
at the end of the test suite. They are configured via the QuarkusTestResource
annotation, which can be placed on any class in the test suite.
These can also be loaded via a service loader mechanism, however if a service
loader is used it should not also be annotated as this will result in it being executed
twice.
Note that when using these with QuarkusUnitTest (rather than @QuarkusTest) they run
before the ClassLoader has been setup. This means injection may not work
as expected.
Due to the very early execution in the test setup lifecycle, logging does not work in such a manager.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfacestatic interfaceProvides methods to handle the common injection cases. -
Method Summary
Modifier and TypeMethodDescriptiondefault voidArguments passed to the lifecycle manager before it starts These arguments are taken fromQuarkusTestResource#initArgs()Theargsis never nulldefault voidinject(QuarkusTestResourceLifecycleManager.TestInjector testInjector) Simplifies the injection of fields of the test class by providing methods to handle the common injection cases.default voidAllow each resource to provide custom injection of fields of the test class.default intorder()If multiple Test Resources are specified, this control the order of which they will be executed.default voidSet the context in which thisQuarkusTestResourceLifecycleManageris being used.start()Start the test resource.voidstop()Stop the test resource.
-
Method Details
-
start
Start the test resource.- Returns:
- A map of configuration properties that will be set for the running test
-
stop
void stop()Stop the test resource. -
setContext
Set the context in which thisQuarkusTestResourceLifecycleManageris being used. This method is executed before theinitmethod. The Context instance is automatically populated before calling the `start` and/or `stop` methods, so for example you can check whether any test failed when stopping the resource by using `context.getTestStatus().isTestFailed()`. Thecontextis never null. -
init
Arguments passed to the lifecycle manager before it starts These arguments are taken fromQuarkusTestResource#initArgs()Theargsis never null- See Also:
-
inject
Allow each resource to provide custom injection of fields of the test class. Most implementations will likely useinject(TestInjector)as it provides a simpler way to inject into fields of tests. It is worth mentioning that this injection into the test class is not under the control of CDI and happens after CDI has performed any necessary injections into the test class. -
inject
Simplifies the injection of fields of the test class by providing methods to handle the common injection cases. In situations not covered byQuarkusTestResourceLifecycleManager.TestInjector, user can resort to implementinginject(Object)It is worth mentioning that this injection into the test class is not under the control of CDI and happens after CDI has performed any necessary injections into the test class. -
order
default int order()If multiple Test Resources are specified, this control the order of which they will be executed.- Returns:
- The order to be executed. The larger the number, the later the Resource is invoked.
-