Package io.quarkus.test
Class QuarkusUnitTest
java.lang.Object
io.quarkus.test.QuarkusUnitTest
- All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterAllCallback
,org.junit.jupiter.api.extension.AfterEachCallback
,org.junit.jupiter.api.extension.BeforeAllCallback
,org.junit.jupiter.api.extension.BeforeEachCallback
,org.junit.jupiter.api.extension.Extension
,org.junit.jupiter.api.extension.InvocationInterceptor
,org.junit.jupiter.api.extension.ParameterResolver
,org.junit.jupiter.api.extension.TestInstantiationAwareExtension
public class QuarkusUnitTest
extends Object
implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.InvocationInterceptor, org.junit.jupiter.api.extension.ParameterResolver
A test extension for testing Quarkus internals, not intended for end user consumption
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.junit.jupiter.api.extension.InvocationInterceptor
org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T>
Nested classes/interfaces inherited from interface org.junit.jupiter.api.extension.TestInstantiationAwareExtension
org.junit.jupiter.api.extension.TestInstantiationAwareExtension.ExtensionContextScope
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddAdditionalDependency
(org.jboss.shrinkwrap.api.spec.JavaArchive archive) Add the java archive as an additional dependency.addBootstrapCustomizer
(Consumer<io.quarkus.bootstrap.app.QuarkusBootstrap.Builder> consumer) An advanced option that allows tests to customize theQuarkusBootstrap.Builder
that will be used to create theCuratedApplication
addBuildChainCustomizer
(Consumer<io.quarkus.builder.BuildChainBuilder> customizer) addClassLoaderEventListener
(io.quarkus.bootstrap.classloading.ClassLoaderEventListener listener) void
afterAll
(org.junit.jupiter.api.extension.ExtensionContext extensionContext) void
afterEach
(org.junit.jupiter.api.extension.ExtensionContext context) assertException
(Consumer<Throwable> assertException) assertLogRecords
(Consumer<List<LogRecord>> assertLogRecords) void
beforeAll
(org.junit.jupiter.api.extension.ExtensionContext extensionContext) void
beforeEach
(org.junit.jupiter.api.extension.ExtensionContext context) debugBytecode
(boolean debugBytecode) Controls bytecode-related debug dumping.Supplier
<org.jboss.shrinkwrap.api.spec.JavaArchive> String[]
void
interceptAfterAllMethod
(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) void
interceptAfterEachMethod
(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) void
interceptBeforeAllMethod
(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) void
interceptBeforeEachMethod
(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) <T> T
interceptTestFactoryMethod
(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) void
interceptTestMethod
(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) void
interceptTestTemplateMethod
(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) overrideConfigKey
(String propertyKey, String propertyValue) Overriden configuration properties take precedence over anapplication.properties
asset added in the testJavaArchive
.overrideRuntimeConfigKey
(String propertyKey, String propertyValue) resolveParameter
(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) We don't actually have to resolve the parameter (thus the default values in the implementation) since the class instance that is passed to JUnit isn't really used.setAfterAllCustomizer
(Runnable afterAllCustomizer) setAfterUndeployListener
(Runnable afterUndeployListener) setAllowTestClassOutsideDeployment
(boolean allowTestClassOutsideDeployment) Normally access to any test classes that are not packaged in the deployment will result in a ClassNotFoundException.setArchiveProducer
(Supplier<org.jboss.shrinkwrap.api.spec.JavaArchive> archiveProducer) setBeforeAllCustomizer
(Runnable beforeAllCustomizer) setCommandLineParameters
(String... commandLineParameters) setExpectedException
(Class<? extends Throwable> expectedException) setExpectedException
(Class<? extends Throwable> expectedException, boolean logMessage) setFlatClassPath
(boolean flatClassPath) If this test should use a single ClassLoader to load all the classes.setForcedDependencies
(List<io.quarkus.maven.dependency.Dependency> forcedDependencies) Provides a convenient way to either add additional dependencies to the application (if it doesn't already contain a dependency), or override a version (if the dependency already exists)setLogFileName
(String logFileName) setLogRecordPredicate
(Predicate<LogRecord> predicate) boolean
supportsParameter
(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) traceCategories
(String... categories) Enables trace logs for the given categories, during both build and runtime.withAdditionalDependency
(Consumer<org.jboss.shrinkwrap.api.spec.JavaArchive> dependencyConsumer) Add the java archive as an additional dependency.withApplicationRoot
(Consumer<org.jboss.shrinkwrap.api.spec.JavaArchive> applicationRootConsumer) Customize the application root.withConfigurationResource
(String resourceName) Add anapplication.properties
asset loaded from the specified resource file in the testJavaArchive
.Use an empty application for the teststatic QuarkusUnitTest
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.junit.jupiter.api.extension.InvocationInterceptor
interceptDynamicTest, interceptDynamicTest, interceptTestClassConstructor
Methods inherited from interface org.junit.jupiter.api.extension.TestInstantiationAwareExtension
getTestInstantiationExtensionContextScope
-
Field Details
-
THE_BUILD_WAS_EXPECTED_TO_FAIL
- See Also:
-
started
boolean started
-
-
Constructor Details
-
QuarkusUnitTest
public QuarkusUnitTest()
-
-
Method Details
-
setExpectedException
-
setExpectedException
public QuarkusUnitTest setExpectedException(Class<? extends Throwable> expectedException, boolean logMessage) -
withSecuredConnection
-
assertException
-
getArchiveProducer
-
setArchiveProducer
public QuarkusUnitTest setArchiveProducer(Supplier<org.jboss.shrinkwrap.api.spec.JavaArchive> archiveProducer) - Parameters:
archiveProducer
-- Returns:
- self
- See Also:
-
withApplicationRoot
public QuarkusUnitTest withApplicationRoot(Consumer<org.jboss.shrinkwrap.api.spec.JavaArchive> applicationRootConsumer) Customize the application root.- Parameters:
applicationRootConsumer
-- Returns:
- self
-
withEmptyApplication
Use an empty application for the test- Returns:
- self
-
addAdditionalDependency
Add the java archive as an additional dependency. This dependency is always considered an application archive, even if it would not otherwise be one.- Parameters:
archive
-- Returns:
- self
-
withAdditionalDependency
public QuarkusUnitTest withAdditionalDependency(Consumer<org.jboss.shrinkwrap.api.spec.JavaArchive> dependencyConsumer) Add the java archive as an additional dependency. This dependency is always considered an application archive, even if it would not otherwise be one.- Parameters:
dependencyConsumer
-- Returns:
- self
-
addBuildChainCustomizer
public QuarkusUnitTest addBuildChainCustomizer(Consumer<io.quarkus.builder.BuildChainBuilder> customizer) -
addClassLoaderEventListener
public QuarkusUnitTest addClassLoaderEventListener(io.quarkus.bootstrap.classloading.ClassLoaderEventListener listener) -
setLogFileName
-
setLogRecordPredicate
-
setFlatClassPath
If this test should use a single ClassLoader to load all the classes. This is sometimes necessary when testing Quarkus itself, and we want the test classes and Quarkus classes to be in the same CL. -
assertLogRecords
-
setBeforeAllCustomizer
-
setAfterAllCustomizer
-
setForcedDependencies
public QuarkusUnitTest setForcedDependencies(List<io.quarkus.maven.dependency.Dependency> forcedDependencies) Provides a convenient way to either add additional dependencies to the application (if it doesn't already contain a dependency), or override a version (if the dependency already exists) -
getCommandLineParameters
-
setCommandLineParameters
-
setAllowTestClassOutsideDeployment
Normally access to any test classes that are not packaged in the deployment will result in a ClassNotFoundException. If this is true then access is allowed, which can be useful when testing shutdown behaviour. -
addBootstrapCustomizer
public QuarkusUnitTest addBootstrapCustomizer(Consumer<io.quarkus.bootstrap.app.QuarkusBootstrap.Builder> consumer) An advanced option that allows tests to customize theQuarkusBootstrap.Builder
that will be used to create theCuratedApplication
-
interceptBeforeAllMethod
public void interceptBeforeAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptBeforeAllMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
Throwable
-
interceptBeforeEachMethod
public void interceptBeforeEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptBeforeEachMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
Throwable
-
interceptTestFactoryMethod
public <T> T interceptTestFactoryMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptTestFactoryMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
Throwable
-
interceptAfterEachMethod
public void interceptAfterEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptAfterEachMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
Throwable
-
interceptAfterAllMethod
public void interceptAfterAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptAfterAllMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
Throwable
-
interceptTestMethod
public void interceptTestMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptTestMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
Throwable
-
interceptTestTemplateMethod
public void interceptTestTemplateMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptTestTemplateMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
Throwable
-
beforeAll
public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Exception - Specified by:
beforeAll
in interfaceorg.junit.jupiter.api.extension.BeforeAllCallback
- Throws:
Exception
-
afterAll
public void afterAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Exception - Specified by:
afterAll
in interfaceorg.junit.jupiter.api.extension.AfterAllCallback
- Throws:
Exception
-
afterEach
- Specified by:
afterEach
in interfaceorg.junit.jupiter.api.extension.AfterEachCallback
- Throws:
Exception
-
beforeEach
- Specified by:
beforeEach
in interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
- Throws:
Exception
-
getAfterUndeployListener
-
setAfterUndeployListener
-
withConfigurationResource
Add anapplication.properties
asset loaded from the specified resource file in the testJavaArchive
.If an
application.properties
asset was already added explicitly to the archive (for instance throughResourceContainer.addAsResource(String)
), this formet asset is removed and completely replaced by the one given here.Configuration properties added with
overrideConfigKey(String, String)
take precedence over the properties from the specified resource file.- Parameters:
resourceName
-- Returns:
- the test configuration
-
overrideConfigKey
Overriden configuration properties take precedence over anapplication.properties
asset added in the testJavaArchive
.- Parameters:
propertyKey
-propertyValue
-- Returns:
- the test configuration
-
overrideRuntimeConfigKey
-
debugBytecode
Controls bytecode-related debug dumping.When enabled, each Quarkus startup will have configuration properties such as
quarkus.debug.generated-classes-dir
set so that generated code gets dumped intarget/debug
, within a unique subdirectory for each test execution.Look at the logs of a particular test to identify the corresponding dump directory.
- Parameters:
debugBytecode
-true
if debug should be enabled- Returns:
this
, for method chaining.
-
traceCategories
Enables trace logs for the given categories, during both build and runtime.- Parameters:
categories
- The categories for which to enable trace logging.- Returns:
this
, for method chaining.
-
supportsParameter
public boolean supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws org.junit.jupiter.api.extension.ParameterResolutionException - Specified by:
supportsParameter
in interfaceorg.junit.jupiter.api.extension.ParameterResolver
- Throws:
org.junit.jupiter.api.extension.ParameterResolutionException
-
resolveParameter
public Object resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws org.junit.jupiter.api.extension.ParameterResolutionException We don't actually have to resolve the parameter (thus the default values in the implementation) since the class instance that is passed to JUnit isn't really used. The actual test instance that is used is the one that is pulled from Arc, which of course will already have its constructor parameters properly resolved- Specified by:
resolveParameter
in interfaceorg.junit.jupiter.api.extension.ParameterResolver
- Throws:
org.junit.jupiter.api.extension.ParameterResolutionException
-