@xxxxc

Класс для тестирования в Spring Boot грузит только свою автоматическую конфигурацию, как загрузить свою?

Помогите разобраться. Использую Spring Boot 2.0 с Spring Data JPA
Есть мейн класс
@SpringBootApplication
public class PhoneBookApplication {
    public static void main(String[] args) {
        SpringApplication.run(PhoneBookApplication.class, args);
    }
}

Также создан самый базовый репозиторий:
public interface UserRepository extends JpaRepository<User, Integer>{}

Есть обычное энтити, со всеми аннотациями, геттерами, сеттарами и конструктором.
Сейчас пытаюсь протестировать работу с БД. Создал простой тест.
@ActiveProfiles("test")
@RunWith(SpringRunner.class)
@SpringBootTest(classes=PhoneBookApplication.class)    
@DataJpaTest
public class UserRepositoryTest {
	@Autowired
	public UserRepository userRepository;
	@Test 
	public void createUser(){
		User u = new User();
		u.setFullName("FullName");
		u.setPassword("123456");
		u.setUserName("Name");
		userRepository.save(u);
	}

И здесь происходят все проблемы. Из-за использования аннотации DataJpaTest - Spring автоматически работает только с h2. У меня есть application.properties в котором я пытался использовать mySql. Но спринг бут всёравно грузит только свою. Нашел аннотацию чтоб изменить БД, но она каким-то образом не работает @AutoConfigureTestDatabase(replace=Replace.NONE)

Я уже смерился, что не смогу использовать mySql для тестов. Еще это наверно плохая идея использовать встроенную БД для тестов? Но не смотря на это, я хочу указать кое-какие конфиги в application.properties уже для h2. Но спринг их не грузит, даже создал профили и всё-равно 0 эффекта.
Как использую профили: в тесте @ActiveProfiles("test")
В application.properties даже хардкожу для тестов spring.profiles.active: test
Ну и сами проперти для h2 в файле application-test.properties
  • Вопрос задан
  • 294 просмотра
Пригласить эксперта
Ответы на вопрос 1
@xxxxc Автор вопроса
Даже явно указывая на конфиг через
@PropertySource("classpath:application.properties")
не грузит
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы