Я думаю, что один из способов решить эту проблему - использовать файлы пользовательских свойств и классы @Configuration.
Для каждого теста вы создадите файл свойств, например, test1-dbA.properties * 1005. *
jdbc.driverClassName=org.h2.Driver
jdbc.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
jdbc.username=db1
jdbc.password=..
Далее вы должны определить bean-компонент DataSource, который загружает свойства из test1-dbA.properties
@Configuration
@EnableJpaRepositories(basePackages = "org.baeldung.repository")
@PropertySource("test1-dbA.properties")
@EnableTransactionManagement
public class DB1Config {
@Autowired
private Environment env;
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName"));
dataSource.setUrl(env.getProperty("jdbc.url"));
dataSource.setUsername(env.getProperty("jdbc.user"));
dataSource.setPassword(env.getProperty("jdbc.pass"));
return dataSource;
}
// ...
}
В тесте JUnit вы должны загрузить класс конфигурации :
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Application.class, DB1Config.class})
public class db1Test{
// ...
}
Этот и другие варианты можно посмотреть здесь: https://www.baeldung.com/spring-testing-separate-data-source и https://www.baeldung.com/spring-jpa-test-in-memory-database