Я хочу настроить приложение загрузки Spring, чтобы ни одна БД не использовалась вообще. Так я аннотированный мой класс приложений для исключения JPA автонастройки классов:Единичный тест SpringBoot не использует аннотацию @EnableAutoConfiguration от класса приложения
@SpringBootApplication
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class Application {
public static void main(final String... args) {
run(Application.class, args);
}
}
Это прекрасно работает, когда служба запускается автономной
К сожалению, мой тест Classe кажется игнорировать аннотацию, хотя я использую класс Application для моего теста
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SwaggerJsonExistenceTest {
...
}
тест выдает следующее сообщение об ошибке
Вызвать: org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем 'dataSource': вызов метода init не удалось; Вложенное исключение - java.lang.IllegalStateException: не может определить встроенную базу данных для тестов. Если вы хотите встроенную базу данных , пожалуйста, поместите ее в путь к классам.
Обновление: Нет драйверов DB на пути к классам.
org.springframework.boot: весна-загрузки-стартер-данных JPA используется для тестирования (в комплекте с помощью директивы testCompile в Gradle)
Как тест должен быть настроен таким образом, что он не использует db- связанная автоконфигурация?
Исправление: я удалил все jpg стартовые зависимости (так как никакой DB не требуется), так что autoconfig источника данных вообще не выполняется.
У вас есть драйвер базы данных на пути к классу? Какие пружинные загрузчики вы используете? если вы это сделаете, удалите его. Он остановит любую магию db-autoconfiguration. –
@BartoszBilicki Я удалил все jpg стартовые зависимости. он работает сейчас, thx. хотя я до сих пор не знаю, почему исключение классов не работает для теста ... – Gernot