Skip to content

Clarify documentation on importing Testcontainer declarations and using @ServiceConnection or @DynamicPropertySource #35629

@sergey-morenets

Description

@sergey-morenets

Hi

We tried to use Spring Boot & TestContainers integration added in Spring Boot 3.1.0.

We used example from the reference documentation:

public interface MyContainers { @Container MongoDBContainer mongoContainer = new MongoDBContainer("mongo:5.0"); @Container Neo4jContainer<?> neo4jContainer = new Neo4jContainer<>("neo4j:5"); } 

So we created an interface with our container declaration:

public interface ProjectContainers {	@Container	GenericContainer<?> mysql = new MySQLContainer("mysql:8"); } 

Then we created class-configuration:

@TestConfiguration(proxyBeanMethods = false) @ImportTestcontainers(ProjectContainers.class) public class ContainerConfiguration { } 

and finally our integration test:

@SpringBootTest(classes = ContainerConfiguration.class) @Testcontainers public class OrderServiceTest {	@Autowired	OrderService orderService;	@Test	void save_success() {	Order order = new Order();	orderService.save(order);	} 

However our test failed with exception:

Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'javax.persistence.jdbc.url', 'hibernate.connection.url', or 'hibernate.dialect')	at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:188) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]	at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:87) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:274) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:34) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]	at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:119) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final]	at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:264) ~[hibernate-core-6.2.2.Final.jar:6.2.2.Final] 

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions