Class TempDirectory
java.lang.Object
org.junit.jupiter.engine.extension.TempDirectory
- All Implemented Interfaces:
org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.ParameterResolver, org.junit.jupiter.api.extension.TestInstantiationAwareExtension
class TempDirectory
extends Object
implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.ParameterResolver
TempDirectory is a JUnit Jupiter extension that creates and cleans
up temporary directories if a field in a test class or a parameter in a
test class constructor, lifecycle method, or test method is annotated with
@TempDir.
Consult the Javadoc for TempDir for details on the contract.
- Since:
- 5.4
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static classprivate static classprivate static class(package private) static interface(package private) static enumNested classes/interfaces inherited from interface org.junit.jupiter.api.extension.TestInstantiationAwareExtension
org.junit.jupiter.api.extension.TestInstantiationAwareExtension.ExtensionContextScope -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Stringprivate final JupiterConfigurationprivate static final String(package private) static final Stringprivate static final String(package private) static final org.junit.jupiter.api.extension.ExtensionContext.Namespace -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static voidassertNonFinalField(Field field) private static voidassertSupportedType(String target, Class<?> type) voidbeforeAll(org.junit.jupiter.api.extension.ExtensionContext context) voidbeforeEach(org.junit.jupiter.api.extension.ExtensionContext context) (package private) static TempDirectory.CloseablePathcreateTempDir(org.junit.jupiter.api.io.TempDirFactory factory, org.junit.jupiter.api.io.CleanupMode cleanupMode, Class<?> elementType, org.junit.jupiter.api.extension.AnnotatedElementContext elementContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) private org.junit.jupiter.api.io.CleanupModedetermineCleanupMode(org.junit.jupiter.api.io.TempDir tempDir) private org.junit.jupiter.api.io.CleanupModeprivate org.junit.jupiter.api.io.CleanupModedetermineCleanupModeForParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext) private org.junit.jupiter.api.io.TempDirFactorydetermineTempDirFactory(org.junit.jupiter.api.io.TempDir tempDir, TempDirectory.Scope scope) private org.junit.jupiter.api.io.TempDirFactorydetermineTempDirFactoryForField(Field field, TempDirectory.Scope scope) private org.junit.jupiter.api.io.TempDirFactorydetermineTempDirFactoryForParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, TempDirectory.Scope scope) private static org.junit.jupiter.api.extension.ExtensionContext.StoregetContextSpecificStore(org.junit.jupiter.api.extension.ExtensionContext context) private static ObjectgetPathOrFile(Class<?> elementType, org.junit.jupiter.api.extension.AnnotatedElementContext elementContext, org.junit.jupiter.api.io.TempDirFactory factory, org.junit.jupiter.api.io.CleanupMode cleanupMode, TempDirectory.Scope scope, org.junit.jupiter.api.extension.ExtensionContext extensionContext) private TempDirectory.ScopegetScope(org.junit.jupiter.api.extension.ExtensionContext context) org.junit.jupiter.api.extension.TestInstantiationAwareExtension.ExtensionContextScopegetTestInstantiationExtensionContextScope(org.junit.jupiter.api.extension.ExtensionContext rootContext) private voidinjectFields(org.junit.jupiter.api.extension.ExtensionContext context, Object testInstance, Class<?> testClass, Predicate<Field> predicate) private voidinjectInstanceFields(org.junit.jupiter.api.extension.ExtensionContext context, Object instance) private voidinjectStaticFields(org.junit.jupiter.api.extension.ExtensionContext context, Class<?> testClass) private static voidinstallFailureTracker(org.junit.jupiter.api.extension.ExtensionContext context) private static voidinstallFailureTracker(org.junit.jupiter.api.extension.ExtensionContext context, org.junit.jupiter.api.extension.ExtensionContext parentContext) resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) Resolve the current temporary directory for theParameterin the suppliedParameterContext.private static booleanselfOrChildFailed(org.junit.jupiter.api.extension.ExtensionContext context) booleansupportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
-
Field Details
-
NAMESPACE
static final org.junit.jupiter.api.extension.ExtensionContext.Namespace NAMESPACE -
FILE_OPERATIONS_KEY
- See Also:
-
KEY
- See Also:
-
FAILURE_TRACKER
- See Also:
-
CHILD_FAILED
- See Also:
-
configuration
-
-
Constructor Details
-
TempDirectory
-
-
Method Details
-
getTestInstantiationExtensionContextScope
public org.junit.jupiter.api.extension.TestInstantiationAwareExtension.ExtensionContextScope getTestInstantiationExtensionContextScope(org.junit.jupiter.api.extension.ExtensionContext rootContext) - Specified by:
getTestInstantiationExtensionContextScopein interfaceorg.junit.jupiter.api.extension.TestInstantiationAwareExtension
-
beforeAll
-
beforeEach
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context) Perform field injection for non-private, non-static fields (i.e., instance fields) of typePathorFilethat are annotated with@TempDir.- Specified by:
beforeEachin interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
-
installFailureTracker
private static void installFailureTracker(org.junit.jupiter.api.extension.ExtensionContext context) -
installFailureTracker
private static void installFailureTracker(org.junit.jupiter.api.extension.ExtensionContext context, org.junit.jupiter.api.extension.ExtensionContext parentContext) -
injectStaticFields
private void injectStaticFields(org.junit.jupiter.api.extension.ExtensionContext context, Class<?> testClass) -
injectInstanceFields
private void injectInstanceFields(org.junit.jupiter.api.extension.ExtensionContext context, Object instance) -
injectFields
-
supportsParameter
public boolean supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) - Specified by:
supportsParameterin interfaceorg.junit.jupiter.api.extension.ParameterResolver
-
resolveParameter
public Object resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) Resolve the current temporary directory for theParameterin the suppliedParameterContext.- Specified by:
resolveParameterin interfaceorg.junit.jupiter.api.extension.ParameterResolver
-
determineCleanupModeForField
-
determineCleanupModeForParameter
private org.junit.jupiter.api.io.CleanupMode determineCleanupModeForParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext) -
determineCleanupMode
private org.junit.jupiter.api.io.CleanupMode determineCleanupMode(org.junit.jupiter.api.io.TempDir tempDir) -
getScope
-
determineTempDirFactoryForField
private org.junit.jupiter.api.io.TempDirFactory determineTempDirFactoryForField(Field field, TempDirectory.Scope scope) -
determineTempDirFactoryForParameter
private org.junit.jupiter.api.io.TempDirFactory determineTempDirFactoryForParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, TempDirectory.Scope scope) -
determineTempDirFactory
private org.junit.jupiter.api.io.TempDirFactory determineTempDirFactory(org.junit.jupiter.api.io.TempDir tempDir, TempDirectory.Scope scope) -
assertNonFinalField
-
assertSupportedType
-
getPathOrFile
private static Object getPathOrFile(Class<?> elementType, org.junit.jupiter.api.extension.AnnotatedElementContext elementContext, org.junit.jupiter.api.io.TempDirFactory factory, org.junit.jupiter.api.io.CleanupMode cleanupMode, TempDirectory.Scope scope, org.junit.jupiter.api.extension.ExtensionContext extensionContext) -
createTempDir
static TempDirectory.CloseablePath createTempDir(org.junit.jupiter.api.io.TempDirFactory factory, org.junit.jupiter.api.io.CleanupMode cleanupMode, Class<?> elementType, org.junit.jupiter.api.extension.AnnotatedElementContext elementContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) -
selfOrChildFailed
private static boolean selfOrChildFailed(org.junit.jupiter.api.extension.ExtensionContext context) -
getContextSpecificStore
private static org.junit.jupiter.api.extension.ExtensionContext.Store getContextSpecificStore(org.junit.jupiter.api.extension.ExtensionContext context)
-