avatar

как правильно оверрайдить application.yml (.properties, whatever) при конфигурации я хочу чтобы при запуске тестов этот конфиг оставался валидным кроме тех пропертей, которые я перепишу в

Товащи, кто недавно настривал удаленный дебагинг для томкета в идеи ?
Пробую - https://stackoverflow.com/questions/6733849/remote-debugging-in-intellij-tomcat - не получается подключится - пишет идея - таймаут

а как правильно оверрайдить application.yml (.properties, whatever) при конфигурации спринга?
т.е., например, у меня есть
application.yml в src/main/resources

я хочу чтобы при запуске тестов этот конфиг оставался валидным кроме тех пропертей, которые я перепишу в src/test/resources/application.yml

пока что получается, что src/test/resources/application.yml переписывает полностью src/main/resources/application.yml (что очевидно - у них одинаковое имя и при билде тестовый просто напросто переписывает оригинальный)
Рейтинг 4.2 из 5. Голосов: 3047
Krasavica 1 месяц назад
12
,

0


Ответы (12)

Krasavica
Ukraine,Odessa
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений
Сообщений : 236
на форуме с: Dec 13
Репутация:0
1 месяц назад
я не знаю точного ответа. но знаю что для этого есть Spring Profiles. Они сводятся к тому, что application-{profile-name}.properties оверрайдит всё, что уже есть в application.properties
отправить
+ 0

Krasavica
Ukraine,Odessa
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений
Сообщений : 236
на форуме с: Dec 13
Репутация:0
1 месяц назад
все что со спрингом / хайбернетом связано в application.properties
context.initializer.classes
jasypt.encryptor.password
spring.jpa.hibernate.ddl-auto
.................................
другие настройки
oracle.username=ENC(esdztOSPQN68OgAscMXp6A==)
oracle.password
oracle.url
...............................
под каждый профиль в profileName.(yml / properties)
отправить
+ 0

Krasavica
Ukraine,Odessa
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений
Сообщений : 236
на форуме с: Dec 13
Репутация:0
1 месяц назад
да проблема в том, что для тестов хотелось профиль test записать в application.yml, чтобы все тесты из идеи запускались с профилем test по-умолчанию
но пока что пофиксили тем, что профиль по-умолчанию прописали Default JUnit конфигурацию Идеи (та, что в Run/Debug config)
теперь новые тесты всегда запускаются с профайлом test
и вписывать его в application.yml не нужно
отправить
+ 0

Krasavica
Ukraine,Odessa
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений
Сообщений : 236
на форуме с: Dec 13
Репутация:0
1 месяц назад
А разве test запускает не все тесты?
отправить
+ 0

Krasavica
Ukraine,Odessa
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений
Сообщений : 236
на форуме с: Dec 13
Репутация:0
1 месяц назад
ну в идее ж можно запустить каждый тест отдельно
отправить
+ 0

Krasavica
Ukraine,Odessa
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений
Сообщений : 236
на форуме с: Dec 13
Репутация:0
1 месяц назад
как сконфигурить схему или/и Entity в JPA, чтобы поле timestamp заполнялось самой БД когда делается insert ?
отправить
+ 0

Krasavica
Ukraine,Odessa
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений
Сообщений : 236
на форуме с: Dec 13
Репутация:0
1 месяц назад
default value колонке прописать
и поставить её not null, скорее всего
отправить
+ 0

Krasavica
Ukraine,Odessa
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений
Сообщений : 236
на форуме с: Dec 13
Репутация:0
1 месяц назад
не, если передавать ей null (что делает hibernate), то она сетит в null значение
а если сделать not null - то не принимает insert без этой колонки
решилось вот так:
CODE:
create table plan (
createdAt timestamp DEFAULT current_timestamp not null
в Entity:
@Column(insertable = false, updatable = false)
private LocalDate createdAt
отправить
+ 0

Krasavica
Ukraine,Odessa
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений
Сообщений : 236
на форуме с: Dec 13
Репутация:0
1 месяц назад
дичь. у меня всегда без (insertable =, updatable = ) работает всегда
отправить
+ 0

Krasavica
Ukraine,Odessa
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений
Сообщений : 236
на форуме с: Dec 13
Репутация:0
1 месяц назад
a @CreationTimestamp не вариант? зачем велосипеды?
отправить
+ 0

Krasavica
Ukraine,Odessa
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений
Сообщений : 236
на форуме с: Dec 13
Репутация:0
1 месяц назад
что именно обзывать велосипедом - зависит от задачи
отправить
+ 0

Krasavica
Ukraine,Odessa
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений
Сообщений : 236
на форуме с: Dec 13
Репутация:0
1 месяц назад
вот и не хотелось велосипедов - хотелось чтобы БД сама сетила
отправить
+ 0


Чтобы оставить комментарий войдите или зарегистрируйтесь