我有一个抽象的控制器测试类及其带有单元的继承者,但我想根据他们正在测试的控制器方法将测试分成不同的类。每次我创建第二个测试类并在其中进行测试时,都会出现以下错误:
Failed to validate connection org.postgresql.jdbc.PgConnection@28806954 (This connection has been closed.). Possibly consider using a shorter maxLifetime value.
我有以下基类:
@SpringBootTest
@AutoConfigureMockMvc
@Testcontainers
public abstract class ControllerAbstractTest {
@Container
private final static PostgreSQLContainer postgreSQLContainer;
static {
postgreSQLContainer = new PostgreSQLContainer<>("postgres:13")
.withDatabaseName("my-test-db")
.withUsername("a")
.withPassword("a");
postgreSQLContainer.start();
System.setProperty("spring.datasource.url", postgreSQLContainer.getJdbcUrl());
System.setProperty("spring.datasource.password", postgreSQLContainer.getPassword());
System.setProperty("spring.datasource.username", postgreSQLContainer.getUsername());
}
// other methods
测试在单个继承者类中工作得很好。
我正在使用org.testcontainers:junit-jupiter:1.16.2
相同版本的 postgresql 和spring boot 2.5.6
. @Test
注释来自org.junit.jupiter.api.Test
我曾尝试添加@Testcontainers
继承者并将其从基本测试类中删除,但它没有帮助。