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
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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>
+9 -9
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>
@@ -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>
@@ -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:
@@ -1,2 +0,0 @@
docker.client.strategy=org.testcontainers.dockerclient.UnixSocketClientProviderStrategy
docker.host=unix:///var/run/docker.sock
@@ -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>
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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
@@ -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");
} }
} }
@@ -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")
@@ -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: