В вашем LogRepositoryTest
тестовом классе вы должны указать альтернативный класс конфигурации теста, который следует принять во внимание, в вашем случае, я думаю, это должна быть TestConfig
.
Из Spring Boot документация:
Если вы знакомы с Spring Test Framework, вы можете использовать @ContextConfiguration(classes=…)
, чтобы указать, какой Spring @Configuration
загрузить.В качестве альтернативы вы могли часто использовать вложенные классы @Configuration
в своем тесте.
Так что аннотируйте LogRepositoryTest
с помощью @ContextConfiguration(classes = {TestConfig.class})
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("local")
@ContextConfiguration(classes = {TestConfig.class})
public class LogRepositoryTest {
@Autowired
private ResultLogRepository resultLogRepository;
@Test
public void init(){
}
}
ОБНОВЛЕНИЕ
Также аннотируйте свой класс конфигурации с помощью:
@EnableAutoConfiguration
Что-то вроде:
@Configuration
@EnableAutoConfiguration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "logEntityManagerFactory",
transactionManagerRef = "logTransactionManager",
basePackages = { "it.xxx.yyy.repository.log" })
@EntityScan(basePackages = {"it.xxx.yyy.model.log", "it.xxx.yyy.common"})
@Profile("local")
public class TestDatabaseConfig {
//...
}
ОБНОВЛЕНИЕ 2
Для ошибки:
Вызвано: org.springframework.beans.factory.NoUniqueBeanDefinitionException: нет подходящего компонента типа 'org.springframework.boot.autoconfigure.jdbc.DataSourceProperties': не найдено ожидаемого единственного соответствующего компонента, но 2 найдено: logDataSourceProperties, spring.datasource-org.springframework.boot.autoconfigure.jdbc.DataSourceProperties
Полностью удалите метод:
@Bean("logDataSourceProperties")
public DataSourceProperties logDataSourceProperties() {
return new DataSourceProperties();
}
и измените свой:
@Bean(name = "logDataSource")
public DataSource dataSource(@Qualifier("logDataSourceProperties") DataSourceProperties properties) {
// ...
}
до:
@Bean(name = "logDataSource")
public DataSource dataSource(DataSourceProperties properties) {
// ...
}