Поэтому я аннотировал свой класс приложения для исключения классов автоконфигурации JPA:
Код: Выделить всё
@SpringBootApplication
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class Application {
public static void main(final String... args) {
run(Application.class, args);
}
}
К сожалению, мой тестовый класс игнорирует аннотацию, хотя для своего теста я использую класс приложения
Код: Выделить всё
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SwaggerJsonExistenceTest {
...
}
Причина: org.springframework.beans.factory.BeanCreationException:
Ошибка создания bean-компонента с именем 'dataSource': вызов метода init
не выполнен; вложенным исключением является java.lang.IllegalStateException: невозможно
определить встроенную базу данных для тестов. Если вам нужна встроенная база данных
, поместите поддерживаемую базу данных в путь к классам.
Обновление:
В пути к классам нет драйверов БД.
org.springframework.boot:spring-boot-starter-data-jpa используется для тестирования (включается через директиву testCompile в gradle)
Как настроить тест, чтобы он не использовал автоконфигурацию, связанную с БД?
Исправление: я удалил все стартовые зависимости jpa (поскольку БД не требуется), поэтому автоконфигурация источника данных вообще не выполняется.
Подробнее здесь: https://stackoverflow.com/questions/420 ... from-appli
Мобильная версия