Решил гонять тесты через H2. Аннотации над абстрактным тестом, от которого наследуются все остальные:
@RunWith(SpringRunner.class)
@SpringBootTest
@EnableJpaRepositories
@ActiveProfiles("dev")
public abstract class AbstractTest {
}
В test/resources лежит файл application-dev.yml, который должен подхватываться при активном профиле "dev":
spring:
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:file:~/streamcast;DB_CLOSE_ON_EXIT=FALSE;IFEXISTS=TRUE;DB_CLOSE_DELAY=-1;
username: root
password: root
jpa:
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate.dialect: org.hibernate.dialect.H2Dialect
hibernate.temp.use_jdbc_metadata_defaults: false
profiles:
active: dev
server:
port: 8080
Выдаёт следующий exception:
Caused by: org.h2.jdbc.JdbcSQLException: Схема "information_schema" не найдена
Schema "information_schema" not found; SQL statement:
select SEQUENCE_CATALOG, SEQUENCE_SCHEMA, SEQUENCE_NAME, INCREMENT from information_schema.sequences [90079-197]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.command.Parser.getSchema(Parser.java:701)
at org.h2.command.Parser.getSchema(Parser.java:707)
at org.h2.command.Parser.readTableFilter(Parser.java:1388)
at org.h2.command.Parser.parseSelectSimpleFromPart(Parser.java:2138)
at org.h2.command.Parser.parseSelectSimple(Parser.java:2287)
at org.h2.command.Parser.parseSelectSub(Parser.java:2133)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1946)
at org.h2.command.Parser.parseSelect(Parser.java:1919)
at org.h2.command.Parser.parsePrepared(Parser.java:463)
at org.h2.command.Parser.parse(Parser.java:335)
at org.h2.command.Parser.parse(Parser.java:307)
at org.h2.command.Parser.prepareCommand(Parser.java:278)
at org.h2.engine.Session.prepareLocal(Session.java:611)
at org.h2.engine.Session.prepareCommand(Session.java:549)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1247)
at org.h2.jdbc.JdbcStatement.executeQuery(JdbcStatement.java:78)
at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorH2DatabaseImpl.extractMetadata(SequenceInformationExtractorH2DatabaseImpl.java:37)
at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.initializeSequences(DatabaseInformationImpl.java:65)
at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.<init>(DatabaseInformationImpl.java:59)
at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:132)
... 77 more
Дело в настройках datasource? Подскажите, что не так?
Вам необходимо создать таблицы при помощи хайбернейта во время запуска тестов, указав следующее проперти:
spring.jpa.hibernate.ddl-auto=create
Или можно сделать это самому, создав файл schema.sql с необходимыми таблицами в папке resources.
P.S так же советую использовать аннотацию @DataJpaTest вместо @SpringBootTest , если вы собираетесь тестировать только persistence. @SpringBootTest поднимает весь контекст, включая контроллеры, сервисы, стандартные спринговские бины и т.д.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости