我正在使用测试容器对 micronaut 应用程序进行集成测试和端到端测试。
这是测试容器的配置
@Testcontainers
public abstract class TestContainerFixture {
protected static final GenericContainer mongoDBContainer;
protected static final Map<String, Object> properties;
static {
mongoDBContainer = new GenericContainer(DockerImageName.parse("mongo:4.0.10"))
.withExposedPorts(27017)
.withReuse(true);
mongoDBContainer.start();
properties = Map.of("mongodb.uri",
String.format("mongodb://%s:%s", mongoDBContainer.getContainerIpAddress(), mongoDBContainer.getMappedPort(27017)));
}
protected ApplicationContext applicationContext;
}
扩展测试容器的类
public class DiscountUpdateListenerTest extends TestContainerFixture {
}
因为我正在.withReuse(true);
为所有其他测试类重用测试容器。如果我在集成测试运行时禁用.withReuse(false)
每个类,则会创建容器,这需要更长的时间来执行测试。
所以,为了重用同一个容器,我使用了这个特性.withReuse(true)
。由于容器在那里停留的时间更长。所以我想每 1-2 小时取出一次容器