This commit is contained in:
hiondal 2025-02-18 02:28:19 +09:00
parent 6fece3ec00
commit b899d712a5
28 changed files with 1052 additions and 4130 deletions

View File

@ -0,0 +1,560 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - MemberRepositoryIntegrationTest</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<h1>MemberRepositoryIntegrationTest</h1>
<div class="breadcrumbs">
<a href="../index.html">all</a> &gt;
<a href="../packages/com.unicorn.lifesub.member.test.integration.repository.html">com.unicorn.lifesub.member.test.integration.repository</a> &gt; MemberRepositoryIntegrationTest</div>
<div id="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox" id="tests">
<div class="counter">4</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox" id="ignored">
<div class="counter">0</div>
<p>ignored</p>
</div>
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.529s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Tests</a>
</li>
<li>
<a href="#tab1">Standard output</a>
</li>
<li>
<a href="#tab2">Standard error</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Tests</h2>
<table>
<thead>
<tr>
<th>Test</th>
<th>Method name</th>
<th>Duration</th>
<th>Result</th>
</tr>
</thead>
<tr>
<td class="success">회원 삭제 테스트</td>
<td class="success">givenExistingMember_whenDelete_thenCannotFind()</td>
<td class="success">0.026s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">회원 정보 업데이트 테스트</td>
<td class="success">givenExistingMember_whenUpdateInfo_thenSuccess()</td>
<td class="success">0.021s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">회원 저장 및 조회 테스트</td>
<td class="success">givenMemberEntity_whenSave_thenFindByUserId()</td>
<td class="success">0.477s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">존재하지 않는 회원 조회 테스트</td>
<td class="success">givenNonExistentUserId_whenFindByUserId_thenReturnEmpty()</td>
<td class="success">0.005s</td>
<td class="success">passed</td>
</tr>
</table>
</div>
<div id="tab1" class="tab">
<h2>Standard output</h2>
<span class="code">
<pre>02:27:59.968 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest]: MemberRepositoryIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
02:28:00.081 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration com.unicorn.lifesub.member.MemberApplication for test class com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest
02:28:00.138 [Test worker] INFO org.testcontainers.images.PullPolicy -- Image pull policy will be performed by: DefaultPullPolicy()
02:28:00.141 [Test worker] INFO org.testcontainers.utility.ImageNameSubstitutor -- Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
02:28:00.151 [Test worker] INFO org.testcontainers.DockerClientFactory -- Testcontainers version: 1.20.4
02:28:00.273 [Test worker] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Loaded org.testcontainers.dockerclient.NpipeSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
02:28:00.452 [Test worker] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Found Docker environment with local Npipe socket (npipe:////./pipe/docker_engine)
02:28:00.453 [Test worker] INFO org.testcontainers.DockerClientFactory -- Docker host IP address is localhost
02:28:00.462 [Test worker] INFO org.testcontainers.DockerClientFactory -- Connected to docker:
Server Version: 27.5.1
API Version: 1.47
Operating System: Docker Desktop
Total Memory: 15853 MB
Labels:
com.docker.desktop.address=npipe://\\.\pipe\docker_cli
02:28:00.480 [Test worker] INFO tc.testcontainers/ryuk:0.11.0 -- Creating container for image: testcontainers/ryuk:0.11.0
02:28:00.741 [Test worker] INFO tc.testcontainers/ryuk:0.11.0 -- Container testcontainers/ryuk:0.11.0 is starting: af4d186af4cbfe1d0d30753362a2bf24572792c8e589b8df67813f10ffe5b50f
02:28:01.263 [Test worker] INFO tc.testcontainers/ryuk:0.11.0 -- Container testcontainers/ryuk:0.11.0 started in PT0.782733S
02:28:01.268 [Test worker] INFO org.testcontainers.utility.RyukResourceReaper -- Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
02:28:01.268 [Test worker] INFO org.testcontainers.DockerClientFactory -- Checking the system...
02:28:01.268 [Test worker] INFO org.testcontainers.DockerClientFactory -- ✔︎ Docker server version should be at least 1.6.0
02:28:01.269 [Test worker] INFO tc.postgres:13.2-alpine -- Creating container for image: postgres:13.2-alpine
02:28:01.351 [Test worker] INFO tc.postgres:13.2-alpine -- Container postgres:13.2-alpine is starting: 0ece64614a1debd27110fa0b02401c9784cd1c3ef47e8b2ea47fde5b492a9f92
02:28:02.643 [Test worker] INFO tc.postgres:13.2-alpine -- Container postgres:13.2-alpine started in PT1.3749008S
02:28:02.644 [Test worker] INFO tc.postgres:13.2-alpine -- Container is started (JDBC URL: jdbc:postgresql://localhost:55768/member?loggerLevel=OFF)
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.4.0)
2025-02-18T02:28:02.912+09:00 INFO 34704 --- [member-service] [ Test worker] .m.t.i.r.MemberRepositoryIntegrationTest : Starting MemberRepositoryIntegrationTest using Java 23.0.2 with PID 34704 (started by hiond in C:\home\workspace\lifesub\member)
2025-02-18T02:28:02.913+09:00 DEBUG 34704 --- [member-service] [ Test worker] .m.t.i.r.MemberRepositoryIntegrationTest : Running with Spring Boot v3.4.0, Spring v6.2.0
2025-02-18T02:28:02.913+09:00 INFO 34704 --- [member-service] [ Test worker] .m.t.i.r.MemberRepositoryIntegrationTest : The following 1 profile is active: &quot;integration-test&quot;
2025-02-18T02:28:03.220+09:00 INFO 34704 --- [member-service] [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2025-02-18T02:28:03.315+09:00 INFO 34704 --- [member-service] [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 87 ms. Found 1 JPA repository interface.
2025-02-18T02:28:03.550+09:00 INFO 34704 --- [member-service] [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
2025-02-18T02:28:03.585+09:00 INFO 34704 --- [member-service] [ Test worker] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.2.Final
2025-02-18T02:28:03.600+09:00 INFO 34704 --- [member-service] [ Test worker] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled
2025-02-18T02:28:03.781+09:00 INFO 34704 --- [member-service] [ Test worker] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer
2025-02-18T02:28:03.801+09:00 INFO 34704 --- [member-service] [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2025-02-18T02:28:03.863+09:00 INFO 34704 --- [member-service] [ Test worker] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@644e6a8e
2025-02-18T02:28:03.865+09:00 INFO 34704 --- [member-service] [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2025-02-18T02:28:03.884+09:00 WARN 34704 --- [member-service] [ Test worker] org.hibernate.orm.deprecation : HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)
2025-02-18T02:28:03.905+09:00 INFO 34704 --- [member-service] [ Test worker] org.hibernate.orm.connections.pooling : HHH10001005: Database info:
Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)']
Database driver: undefined/unknown
Database version: 13.2
Autocommit mode: undefined/unknown
Isolation level: undefined/unknown
Minimum pool size: undefined/unknown
Maximum pool size: undefined/unknown
2025-02-18T02:28:04.461+09:00 INFO 34704 --- [member-service] [ Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
2025-02-18T02:28:04.509+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
create table member_roles (
user_id varchar(255) not null,
role varchar(255)
)
Hibernate:
create table member_roles (
user_id varchar(255) not null,
role varchar(255)
)
2025-02-18T02:28:04.513+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
create table members (
user_id varchar(255) not null,
created_at timestamp(6),
updated_at timestamp(6),
password varchar(255) not null,
user_name varchar(255) not null,
primary key (user_id)
)
Hibernate:
create table members (
user_id varchar(255) not null,
created_at timestamp(6),
updated_at timestamp(6),
password varchar(255) not null,
user_name varchar(255) not null,
primary key (user_id)
)
2025-02-18T02:28:04.517+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
alter table if exists member_roles
add constraint FKkrahbaoj05n0hyabejnnrmft
foreign key (user_id)
references members
Hibernate:
alter table if exists member_roles
add constraint FKkrahbaoj05n0hyabejnnrmft
foreign key (user_id)
references members
2025-02-18T02:28:04.522+09:00 INFO 34704 --- [member-service] [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2025-02-18T02:28:04.836+09:00 INFO 34704 --- [member-service] [ Test worker] .m.t.i.r.MemberRepositoryIntegrationTest : Started MemberRepositoryIntegrationTest in 2.166 seconds (process running for 5.526)
2025-02-18T02:28:05.185+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
insert
into
members
(created_at, password, updated_at, user_name, user_id)
values
(?, ?, ?, ?, ?)
Hibernate:
insert
into
members
(created_at, password, updated_at, user_name, user_id)
values
(?, ?, ?, ?, ?)
2025-02-18T02:28:05.193+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
insert
into
member_roles
(user_id, role)
values
(?, ?)
Hibernate:
insert
into
member_roles
(user_id, role)
values
(?, ?)
2025-02-18T02:28:05.256+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
Hibernate:
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
2025-02-18T02:28:05.274+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
Hibernate:
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
2025-02-18T02:28:05.327+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
insert
into
members
(created_at, password, updated_at, user_name, user_id)
values
(?, ?, ?, ?, ?)
Hibernate:
insert
into
members
(created_at, password, updated_at, user_name, user_id)
values
(?, ?, ?, ?, ?)
2025-02-18T02:28:05.329+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
insert
into
member_roles
(user_id, role)
values
(?, ?)
Hibernate:
insert
into
member_roles
(user_id, role)
values
(?, ?)
2025-02-18T02:28:05.332+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
Hibernate:
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
2025-02-18T02:28:05.333+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
Hibernate:
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
2025-02-18T02:28:05.337+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
update
members
set
created_at=?,
password=?,
updated_at=?,
user_name=?
where
user_id=?
Hibernate:
update
members
set
created_at=?,
password=?,
updated_at=?,
user_name=?
where
user_id=?
2025-02-18T02:28:05.341+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
Hibernate:
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
2025-02-18T02:28:05.342+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
Hibernate:
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
2025-02-18T02:28:05.348+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
Hibernate:
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
2025-02-18T02:28:05.354+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
insert
into
members
(created_at, password, updated_at, user_name, user_id)
values
(?, ?, ?, ?, ?)
Hibernate:
insert
into
members
(created_at, password, updated_at, user_name, user_id)
values
(?, ?, ?, ?, ?)
2025-02-18T02:28:05.356+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
insert
into
member_roles
(user_id, role)
values
(?, ?)
Hibernate:
insert
into
member_roles
(user_id, role)
values
(?, ?)
2025-02-18T02:28:05.358+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
Hibernate:
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
2025-02-18T02:28:05.360+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
Hibernate:
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
2025-02-18T02:28:05.370+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
delete
from
member_roles
where
user_id=?
Hibernate:
delete
from
member_roles
where
user_id=?
2025-02-18T02:28:05.372+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
delete
from
members
where
user_id=?
Hibernate:
delete
from
members
where
user_id=?
2025-02-18T02:28:05.375+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
Hibernate:
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
</pre>
</span>
</div>
<div id="tab2" class="tab">
<h2>Standard error</h2>
<span class="code">
<pre>Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build what is described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#0.3
WARNING: A Java agent has been loaded dynamically (C:\Users\hiond\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.15.10\e8eb255b2c378b9a6c7341e7b0e12f0a5636377\byte-buddy-agent-1.15.10.jar)
WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning
WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information
WARNING: Dynamic loading of agents will be disallowed by default in a future release
</pre>
</span>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 8.10</a> at 2025. 2. 18. 오전 2:28:06</p>
</div>
</div>
</body>
</html>

View File

@ -20,7 +20,7 @@
<tr> <tr>
<td> <td>
<div class="infoBox" id="tests"> <div class="infoBox" id="tests">
<div class="counter">3</div> <div class="counter">4</div>
<p>tests</p> <p>tests</p>
</div> </div>
</td> </td>
@ -38,7 +38,7 @@
</td> </td>
<td> <td>
<div class="infoBox" id="duration"> <div class="infoBox" id="duration">
<div class="counter">1.379s</div> <div class="counter">0.529s</div>
<p>duration</p> <p>duration</p>
</div> </div>
</td> </td>
@ -80,12 +80,12 @@
<tbody> <tbody>
<tr> <tr>
<td class="success"> <td class="success">
<a href="packages/com.unicorn.lifesub.member.test.e2e.html">com.unicorn.lifesub.member.test.e2e</a> <a href="packages/com.unicorn.lifesub.member.test.integration.repository.html">com.unicorn.lifesub.member.test.integration.repository</a>
</td> </td>
<td>3</td> <td>4</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>1.379s</td> <td>0.529s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
</tbody> </tbody>
@ -107,12 +107,12 @@
<tbody> <tbody>
<tr> <tr>
<td class="success"> <td class="success">
<a href="classes/com.unicorn.lifesub.member.test.e2e.MemberE2ETest.html">com.unicorn.lifesub.member.test.e2e.MemberE2ETest</a> <a href="classes/com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest.html">com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest</a>
</td> </td>
<td>3</td> <td>4</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>1.379s</td> <td>0.529s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
</tbody> </tbody>
@ -126,7 +126,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label> </label>
</div>Generated by </div>Generated by
<a href="http://www.gradle.org">Gradle 8.10</a> at 2025. 2. 18. 오전 12:44:45</p> <a href="http://www.gradle.org">Gradle 8.10</a> at 2025. 2. 18. 오전 2:28:06</p>
</div> </div>
</div> </div>
</body> </body>

View File

@ -3,16 +3,16 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/> <meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - Package com.unicorn.lifesub.member.test.e2e</title> <title>Test results - Package com.unicorn.lifesub.member.test.integration.repository</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/> <link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/> <link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script> <script src="../js/report.js" type="text/javascript"></script>
</head> </head>
<body> <body>
<div id="content"> <div id="content">
<h1>Package com.unicorn.lifesub.member.test.e2e</h1> <h1>Package com.unicorn.lifesub.member.test.integration.repository</h1>
<div class="breadcrumbs"> <div class="breadcrumbs">
<a href="../index.html">all</a> &gt; com.unicorn.lifesub.member.test.e2e</div> <a href="../index.html">all</a> &gt; com.unicorn.lifesub.member.test.integration.repository</div>
<div id="summary"> <div id="summary">
<table> <table>
<tr> <tr>
@ -22,7 +22,7 @@
<tr> <tr>
<td> <td>
<div class="infoBox" id="tests"> <div class="infoBox" id="tests">
<div class="counter">3</div> <div class="counter">4</div>
<p>tests</p> <p>tests</p>
</div> </div>
</td> </td>
@ -40,7 +40,7 @@
</td> </td>
<td> <td>
<div class="infoBox" id="duration"> <div class="infoBox" id="duration">
<div class="counter">1.379s</div> <div class="counter">0.529s</div>
<p>duration</p> <p>duration</p>
</div> </div>
</td> </td>
@ -78,12 +78,12 @@
</thead> </thead>
<tr> <tr>
<td class="success"> <td class="success">
<a href="../classes/com.unicorn.lifesub.member.test.e2e.MemberE2ETest.html">MemberE2ETest</a> <a href="../classes/com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest.html">MemberRepositoryIntegrationTest</a>
</td> </td>
<td>3</td> <td>4</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>1.379s</td> <td>0.529s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
</table> </table>
@ -96,7 +96,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label> </label>
</div>Generated by </div>Generated by
<a href="http://www.gradle.org">Gradle 8.10</a> at 2025. 2. 18. 오전 12:44:45</p> <a href="http://www.gradle.org">Gradle 8.10</a> at 2025. 2. 18. 오전 2:28:06</p>
</div> </div>
</div> </div>
</body> </body>

View File

@ -11,6 +11,16 @@ spring:
hibernate: hibernate:
format_sql: true format_sql: true
dialect: org.hibernate.dialect.PostgreSQLDialect dialect: org.hibernate.dialect.PostgreSQLDialect
datasource:
hikari:
maximum-pool-size: 5
minimum-idle: 2
connection-timeout: 10000 # 10초
max-lifetime: 580000 # 약 9.6분 (DB wait_timeout보다 짧게)
idle-timeout: 300000 # 5분
validation-timeout: 3000 # 3초
leak-detection-threshold: 30000
connection-test-query: SELECT 1
# JWT 설정 # JWT 설정
jwt: jwt:

View File

@ -1,2 +0,0 @@
docker.client.strategy=org.testcontainers.dockerclient.UnixSocketClientProviderStrategy
docker.host=unix:///var/run/docker.sock

View File

@ -0,0 +1,436 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest" tests="4" skipped="0" failures="0" errors="0" timestamp="2025-02-17T17:28:04" hostname="DREAMONDAL" time="0.532">
<properties/>
<testcase name="회원 저장 및 조회 테스트" classname="com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest" time="0.477"/>
<testcase name="회원 정보 업데이트 테스트" classname="com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest" time="0.021"/>
<testcase name="존재하지 않는 회원 조회 테스트" classname="com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest" time="0.005"/>
<testcase name="회원 삭제 테스트" classname="com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest" time="0.026"/>
<system-out><![CDATA[02:27:59.968 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest]: MemberRepositoryIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
02:28:00.081 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration com.unicorn.lifesub.member.MemberApplication for test class com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest
02:28:00.138 [Test worker] INFO org.testcontainers.images.PullPolicy -- Image pull policy will be performed by: DefaultPullPolicy()
02:28:00.141 [Test worker] INFO org.testcontainers.utility.ImageNameSubstitutor -- Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
02:28:00.151 [Test worker] INFO org.testcontainers.DockerClientFactory -- Testcontainers version: 1.20.4
02:28:00.273 [Test worker] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Loaded org.testcontainers.dockerclient.NpipeSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
02:28:00.452 [Test worker] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Found Docker environment with local Npipe socket (npipe:////./pipe/docker_engine)
02:28:00.453 [Test worker] INFO org.testcontainers.DockerClientFactory -- Docker host IP address is localhost
02:28:00.462 [Test worker] INFO org.testcontainers.DockerClientFactory -- Connected to docker:
Server Version: 27.5.1
API Version: 1.47
Operating System: Docker Desktop
Total Memory: 15853 MB
Labels:
com.docker.desktop.address=npipe://\\.\pipe\docker_cli
02:28:00.480 [Test worker] INFO tc.testcontainers/ryuk:0.11.0 -- Creating container for image: testcontainers/ryuk:0.11.0
02:28:00.741 [Test worker] INFO tc.testcontainers/ryuk:0.11.0 -- Container testcontainers/ryuk:0.11.0 is starting: af4d186af4cbfe1d0d30753362a2bf24572792c8e589b8df67813f10ffe5b50f
02:28:01.263 [Test worker] INFO tc.testcontainers/ryuk:0.11.0 -- Container testcontainers/ryuk:0.11.0 started in PT0.782733S
02:28:01.268 [Test worker] INFO org.testcontainers.utility.RyukResourceReaper -- Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
02:28:01.268 [Test worker] INFO org.testcontainers.DockerClientFactory -- Checking the system...
02:28:01.268 [Test worker] INFO org.testcontainers.DockerClientFactory -- ✔︎ Docker server version should be at least 1.6.0
02:28:01.269 [Test worker] INFO tc.postgres:13.2-alpine -- Creating container for image: postgres:13.2-alpine
02:28:01.351 [Test worker] INFO tc.postgres:13.2-alpine -- Container postgres:13.2-alpine is starting: 0ece64614a1debd27110fa0b02401c9784cd1c3ef47e8b2ea47fde5b492a9f92
02:28:02.643 [Test worker] INFO tc.postgres:13.2-alpine -- Container postgres:13.2-alpine started in PT1.3749008S
02:28:02.644 [Test worker] INFO tc.postgres:13.2-alpine -- Container is started (JDBC URL: jdbc:postgresql://localhost:55768/member?loggerLevel=OFF)
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.4.0)
2025-02-18T02:28:02.912+09:00 INFO 34704 --- [member-service] [ Test worker] .m.t.i.r.MemberRepositoryIntegrationTest : Starting MemberRepositoryIntegrationTest using Java 23.0.2 with PID 34704 (started by hiond in C:\home\workspace\lifesub\member)
2025-02-18T02:28:02.913+09:00 DEBUG 34704 --- [member-service] [ Test worker] .m.t.i.r.MemberRepositoryIntegrationTest : Running with Spring Boot v3.4.0, Spring v6.2.0
2025-02-18T02:28:02.913+09:00 INFO 34704 --- [member-service] [ Test worker] .m.t.i.r.MemberRepositoryIntegrationTest : The following 1 profile is active: "integration-test"
2025-02-18T02:28:03.220+09:00 INFO 34704 --- [member-service] [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2025-02-18T02:28:03.315+09:00 INFO 34704 --- [member-service] [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 87 ms. Found 1 JPA repository interface.
2025-02-18T02:28:03.550+09:00 INFO 34704 --- [member-service] [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
2025-02-18T02:28:03.585+09:00 INFO 34704 --- [member-service] [ Test worker] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.2.Final
2025-02-18T02:28:03.600+09:00 INFO 34704 --- [member-service] [ Test worker] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled
2025-02-18T02:28:03.781+09:00 INFO 34704 --- [member-service] [ Test worker] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer
2025-02-18T02:28:03.801+09:00 INFO 34704 --- [member-service] [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2025-02-18T02:28:03.863+09:00 INFO 34704 --- [member-service] [ Test worker] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@644e6a8e
2025-02-18T02:28:03.865+09:00 INFO 34704 --- [member-service] [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2025-02-18T02:28:03.884+09:00 WARN 34704 --- [member-service] [ Test worker] org.hibernate.orm.deprecation : HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)
2025-02-18T02:28:03.905+09:00 INFO 34704 --- [member-service] [ Test worker] org.hibernate.orm.connections.pooling : HHH10001005: Database info:
Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)']
Database driver: undefined/unknown
Database version: 13.2
Autocommit mode: undefined/unknown
Isolation level: undefined/unknown
Minimum pool size: undefined/unknown
Maximum pool size: undefined/unknown
2025-02-18T02:28:04.461+09:00 INFO 34704 --- [member-service] [ Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
2025-02-18T02:28:04.509+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
create table member_roles (
user_id varchar(255) not null,
role varchar(255)
)
Hibernate:
create table member_roles (
user_id varchar(255) not null,
role varchar(255)
)
2025-02-18T02:28:04.513+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
create table members (
user_id varchar(255) not null,
created_at timestamp(6),
updated_at timestamp(6),
password varchar(255) not null,
user_name varchar(255) not null,
primary key (user_id)
)
Hibernate:
create table members (
user_id varchar(255) not null,
created_at timestamp(6),
updated_at timestamp(6),
password varchar(255) not null,
user_name varchar(255) not null,
primary key (user_id)
)
2025-02-18T02:28:04.517+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
alter table if exists member_roles
add constraint FKkrahbaoj05n0hyabejnnrmft
foreign key (user_id)
references members
Hibernate:
alter table if exists member_roles
add constraint FKkrahbaoj05n0hyabejnnrmft
foreign key (user_id)
references members
2025-02-18T02:28:04.522+09:00 INFO 34704 --- [member-service] [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2025-02-18T02:28:04.836+09:00 INFO 34704 --- [member-service] [ Test worker] .m.t.i.r.MemberRepositoryIntegrationTest : Started MemberRepositoryIntegrationTest in 2.166 seconds (process running for 5.526)
2025-02-18T02:28:05.185+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
insert
into
members
(created_at, password, updated_at, user_name, user_id)
values
(?, ?, ?, ?, ?)
Hibernate:
insert
into
members
(created_at, password, updated_at, user_name, user_id)
values
(?, ?, ?, ?, ?)
2025-02-18T02:28:05.193+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
insert
into
member_roles
(user_id, role)
values
(?, ?)
Hibernate:
insert
into
member_roles
(user_id, role)
values
(?, ?)
2025-02-18T02:28:05.256+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
Hibernate:
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
2025-02-18T02:28:05.274+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
Hibernate:
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
2025-02-18T02:28:05.327+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
insert
into
members
(created_at, password, updated_at, user_name, user_id)
values
(?, ?, ?, ?, ?)
Hibernate:
insert
into
members
(created_at, password, updated_at, user_name, user_id)
values
(?, ?, ?, ?, ?)
2025-02-18T02:28:05.329+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
insert
into
member_roles
(user_id, role)
values
(?, ?)
Hibernate:
insert
into
member_roles
(user_id, role)
values
(?, ?)
2025-02-18T02:28:05.332+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
Hibernate:
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
2025-02-18T02:28:05.333+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
Hibernate:
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
2025-02-18T02:28:05.337+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
update
members
set
created_at=?,
password=?,
updated_at=?,
user_name=?
where
user_id=?
Hibernate:
update
members
set
created_at=?,
password=?,
updated_at=?,
user_name=?
where
user_id=?
2025-02-18T02:28:05.341+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
Hibernate:
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
2025-02-18T02:28:05.342+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
Hibernate:
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
2025-02-18T02:28:05.348+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
Hibernate:
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
2025-02-18T02:28:05.354+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
insert
into
members
(created_at, password, updated_at, user_name, user_id)
values
(?, ?, ?, ?, ?)
Hibernate:
insert
into
members
(created_at, password, updated_at, user_name, user_id)
values
(?, ?, ?, ?, ?)
2025-02-18T02:28:05.356+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
insert
into
member_roles
(user_id, role)
values
(?, ?)
Hibernate:
insert
into
member_roles
(user_id, role)
values
(?, ?)
2025-02-18T02:28:05.358+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
Hibernate:
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
2025-02-18T02:28:05.360+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
Hibernate:
select
r1_0.user_id,
r1_0.role
from
member_roles r1_0
where
r1_0.user_id=?
2025-02-18T02:28:05.370+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
delete
from
member_roles
where
user_id=?
Hibernate:
delete
from
member_roles
where
user_id=?
2025-02-18T02:28:05.372+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
delete
from
members
where
user_id=?
Hibernate:
delete
from
members
where
user_id=?
2025-02-18T02:28:05.375+09:00 DEBUG 34704 --- [member-service] [ Test worker] org.hibernate.SQL :
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
Hibernate:
select
me1_0.user_id,
me1_0.created_at,
me1_0.password,
me1_0.updated_at,
me1_0.user_name
from
members me1_0
where
me1_0.user_id=?
]]></system-out>
<system-err><![CDATA[Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build what is described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#0.3
WARNING: A Java agent has been loaded dynamically (C:\Users\hiond\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.15.10\e8eb255b2c378b9a6c7341e7b0e12f0a5636377\byte-buddy-agent-1.15.10.jar)
WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning
WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information
WARNING: Dynamic loading of agents will be disallowed by default in a future release
]]></system-err>
</testsuite>

View File

@ -8,6 +8,7 @@ import com.unicorn.lifesub.member.dto.LogoutRequest;
import com.unicorn.lifesub.member.repository.jpa.MemberRepository; import com.unicorn.lifesub.member.repository.jpa.MemberRepository;
import com.unicorn.lifesub.member.test.e2e.config.TestContainerConfig; import com.unicorn.lifesub.member.test.e2e.config.TestContainerConfig;
import com.unicorn.lifesub.member.test.e2e.support.TestDataManager; import com.unicorn.lifesub.member.test.e2e.support.TestDataManager;
import jakarta.transaction.Transactional;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -25,6 +26,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ActiveProfiles("e2e-test") @ActiveProfiles("e2e-test")
@Transactional
class MemberE2ETest extends TestContainerConfig { class MemberE2ETest extends TestContainerConfig {
@Autowired @Autowired

View File

@ -7,13 +7,17 @@ import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.junit.jupiter.Testcontainers;
import java.time.Duration;
@Testcontainers @Testcontainers
public class TestContainerConfig { public class TestContainerConfig {
@Container @Container
static PostgreSQLContainer<?> postgreSQLContainer = new PostgreSQLContainer<>("postgres:13.2-alpine") static PostgreSQLContainer<?> postgreSQLContainer = new PostgreSQLContainer<>("postgres:13.2-alpine")
.withDatabaseName("testdb") .withDatabaseName("testdb")
.withUsername("test") .withUsername("test")
.withPassword("test"); .withPassword("test")
.withStartupTimeout(Duration.ofSeconds(60))
.withReuse(true); // 컨테이너 재사용 설정
@DynamicPropertySource @DynamicPropertySource
static void registerPgProperties(DynamicPropertyRegistry registry) { static void registerPgProperties(DynamicPropertyRegistry registry) {
@ -21,5 +25,14 @@ public class TestContainerConfig {
registry.add("spring.datasource.username", postgreSQLContainer::getUsername); registry.add("spring.datasource.username", postgreSQLContainer::getUsername);
registry.add("spring.datasource.password", postgreSQLContainer::getPassword); registry.add("spring.datasource.password", postgreSQLContainer::getPassword);
registry.add("spring.jpa.hibernate.ddl-auto", () -> "create-drop"); registry.add("spring.jpa.hibernate.ddl-auto", () -> "create-drop");
// HikariCP 설정
registry.add("spring.datasource.hikari.maximum-pool-size", () -> "5");
registry.add("spring.datasource.hikari.minimum-idle", () -> "2");
registry.add("spring.datasource.hikari.idle-timeout", () -> "30000");
registry.add("spring.datasource.hikari.connection-timeout", () -> "10000");
registry.add("spring.datasource.hikari.max-lifetime", () -> "580000");
registry.add("spring.datasource.hikari.validation-timeout", () -> "3000");
registry.add("spring.datasource.hikari.connection-test-query", () -> "SELECT 1");
} }
} }

View File

@ -2,6 +2,7 @@ package com.unicorn.lifesub.member.test.integration.repository;
import com.unicorn.lifesub.member.repository.entity.MemberEntity; import com.unicorn.lifesub.member.repository.entity.MemberEntity;
import com.unicorn.lifesub.member.repository.jpa.MemberRepository; import com.unicorn.lifesub.member.repository.jpa.MemberRepository;
import jakarta.transaction.Transactional;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -29,6 +30,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@Testcontainers @Testcontainers
@ActiveProfiles("integration-test") @ActiveProfiles("integration-test")
@Transactional
class MemberRepositoryIntegrationTest { class MemberRepositoryIntegrationTest {
@Container @Container
static PostgreSQLContainer<?> postgreSQLContainer = new PostgreSQLContainer<>("postgres:13.2-alpine") static PostgreSQLContainer<?> postgreSQLContainer = new PostgreSQLContainer<>("postgres:13.2-alpine")

View File

@ -11,6 +11,16 @@ spring:
hibernate: hibernate:
format_sql: true format_sql: true
dialect: org.hibernate.dialect.PostgreSQLDialect dialect: org.hibernate.dialect.PostgreSQLDialect
datasource:
hikari:
maximum-pool-size: 5
minimum-idle: 2
connection-timeout: 10000 # 10초
max-lifetime: 580000 # 약 9.6분 (DB wait_timeout보다 짧게)
idle-timeout: 300000 # 5분
validation-timeout: 3000 # 3초
leak-detection-threshold: 30000
connection-test-query: SELECT 1
# JWT 설정 # JWT 설정
jwt: jwt: