Поэтому я аннотировал свой класс приложения для исключения классов автоконфигурации JPA:
Код: Выделить всё
@SpringBootApplication
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class Application {
public static void main(final String... args) {
run(Application.class, args);
}
}
К сожалению, мой тестовый класс, похоже, игнорирует аннотацию, хотя Для своего теста я использую класс Application
Код: Выделить всё
@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)< /p>
Как настроить тест, чтобы он не использовал автоконфигурацию, связанную с базой данных?
Исправление: I удалили все начальные зависимости jpa (поскольку БД не требуется), так что автоконфигурация источника данных вообще не выполняется.
Подробнее здесь: https://stackoverflow.com/questions/420 ... from-appli