@Target(value=TYPE)
@Retention(value=RUNTIME)
@ExtendWith(value=org.testcontainers.junit.jupiter.TestcontainersExtension.class)
public @interface Testcontainers
@Testcontainers is a JUnit Jupiter extension to activate automatic
startup and stop of containers used in a test case.
The test containers extension finds all fields that are annotated with
Container and calls their container lifecycle methods. Containers
declared as static fields will be shared between test methods. They will be
started only once before any test method is executed and stopped after the
last test method has executed. Containers declared as instance fields will
be started and stopped for every test method.
Note: This extension has only be tested with sequential test execution. Using it with parallel test execution is unsupported and may have unintended side effects.
Example:
@Testcontainers
class MyTestcontainersTests {
// will be shared between test methods
@Container
private static final MySQLContainer MY_SQL_CONTAINER = new MySQLContainer();
// will be started before and stopped after each test method
@Container
private PostgreSQLContainer postgresqlContainer = new PostgreSQLContainer()
.withDatabaseName("foo")
.withUsername("foo")
.withPassword("secret");
@Test
void test() {
assertTrue(MY_SQL_CONTAINER.isRunning());
assertTrue(postgresqlContainer.isRunning());
}
}
Container| Modifier and Type | Optional Element and Description |
|---|---|
boolean |
disabledWithoutDocker
Whether tests should be disabled (rather than failing) when Docker is not available.
|