我有一个IT测试的抽象类:
@RunWith(SpringRunner.class)
@Import(DbUnitConfig.class)
@SpringBootTest(classes = App.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@DbUnitConfiguration(dataSetLoader = DbUnitDataSetLoader.class)
@TestExecutionListeners({
DependencyInjectionTestExecutionListener.class,
DirtiesContextTestExecutionListener.class,
TransactionalTestExecutionListener.class,
DbUnitTestExecutionListener.class
})
public abstract class AbstractIT {
@ClassRule
public static final DockerComposeContainer postgres =
new DockerComposeContainer(new File("src/test/resources/docker-compose-postgres.yml"))
.withExposedService("cars-user-postgres-it", 5432);
}
当我只启动IT测试类的一个示例时,它工作正常。
但是当我启动多个测试类时,第一个会完成,其他的会因为关闭postgres而失败
这是来自Container的日志:
Stopping 1ykxuc_postgres-it_1 ...
Stopping 1ykxucpostgres-it_1 ... done
Removing 1ykxuc_postgres-it_1 ...
Removing 1ykxuc_cars-user-postgres-it_1 ... done
Removing network 1ykxuc_default
如何告诉TestContainers不要在一个类执行之后停止容器,而是在所有类都执行完之后停止容器?
2条答案
按热度按时间vsikbqxv1#
我找到了这个解决方案作为变通办法。也许有更好的解决方案?
yml文件:
oug3syen2#
现在可以通过在设置容器时设置实验
.withReuse(true)
来实现:记住以
.start()
开始容器,并将testcontainers.reuse.enable=true
添加到~/. testcontainers.properties参考:https://www.testcontainers.org/features/reuse/