01B. Kotest ํ๋ก์ ํธ ์ค์ (Setup)
01B. Kotest ํ๋ก์ ํธ ์ค์ (Setup) ๊ด๋ จ
Kotest๋ Kotlin์ผ๋ก ์์ฑ๋ ๊ฐ๋ ฅํ ํ ์คํธ ํ๋ ์์ํฌ์ด๋ค. ํ๋ก์ ํธ ์ค์ ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์ค๋ช ํ๋ค.
Kotest ์ค์น์ ์ค์
Kotest๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋จผ์ ํ๋ก์ ํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค.
์์กด์ฑ ์ถ๊ฐ
Gradle ํ๋ก์ ํธ์ ๊ฒฝ์ฐ, Gradle ๋น๋ ํ์ผ(build.gradle.kts
)์ ๋ค์๊ณผ ๊ฐ์ด Kotest ์์กด์ฑ์ ์ถ๊ฐํ๋ค:
repositories {
mavenCentral()
}
dependencies {
testImplementation("io.kotest:kotest-runner-junit5:${kotestVersion}")
// ํ์ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋ชจ๋์ ๋ํ ์ข
์์ฑ๋ ์ถ๊ฐํ๋ค.
}
Maven ํ๋ก์ ํธ์ ๊ฒฝ์ฐ์๋ ๋น๋ ํ์ผ(pom.xml
)์ ๋ค์๊ณผ ๊ฐ์ด Kotest ์์กด์ฑ์ ์ถ๊ฐํ๋ค:
<dependencies>
<dependency>
<groupId>io.kotest</groupId>
<artifactId>kotest-runner-junit5</artifactId>
<version>{kotestVersion}</version>
<scope>test</scope>
</dependency>
</dependencies>
์ฌ๊ธฐ์ ${kotestVersion}
์ ์ฌ์ฉํ๊ณ ์ ํ๋ Kotest ๋ฒ์ ์ ์ง์ ํ๋ค.
Note
2024๋ 2์ ๊ธฐ์ค์ผ๋ก kotest ์ต์ ๋ฒ์ ์ 2023๋ 12์ 3์ผ์ ์ถ์๋ 5.8.0์ด๋ค.
kotest-runner-junit5์ kotest-runner-junit5-jvm์ ์ฐจ์ด์ ์?
Kotest ํ ์คํธ๋ฅผ JUnit 5 ํ ์คํธ ์์ง์ผ๋ก ์คํํ๊ธฐ ์ํ ๊ธฐ๋ณธ์ ์ธ ๋ฌ๋๋ jvm์ด ๋ถ์ ๋ฒ์ ๊ณผ ์๋ ๋ฒ์ 2๊ฐ์ง๊ฐ ์กด์ฌํ๋ค. ์ด ๋ ๋ฒ์ ์ ์ฐจ์ด๋ kotest๊ฐ ์ด๋์์ ์ฌ์ฉ๋๋์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
kotest-runner-junit5
:- ์ด ๋ชจ๋์ Kotest ํ ์คํธ ์์ง๊ณผ JUnit 5๋ฅผ ํตํฉํ์ฌ Kotest ํ ์คํธ๋ฅผ JUnit 5 ํ ์คํธ๋ก ์คํํ ์ ์๊ฒ ํด์ค๋ค. ์ด ๋ชจ๋์ Kotlin Multiplatform ํ๋ก์ ํธ์ ์ฌ์ฉ๋๋ฉฐ, ์ฌ๋ฌ ํ๋ซํผ(์: JVM, JS, Native)์์ JUnit 5์ ํจ๊ป Kotest๋ฅผ ์คํํ ์ ์๋๋ก ์ง์ํ๋ค.
kotest-runner-junit5-jvm
:- ์ด ๋ชจ๋์ JVM์์ Kotlin์ผ๋ก ์์ฑ๋ ์ฝ๋์ ๋ํ JUnit 5 ํ ์คํธ๋ฅผ ์คํํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๋ชจ๋์ JVM ํ๋ซํผ์ ํนํ๋์ด ์์ผ๋ฉฐ, Kotest ํ ์คํธ๋ฅผ JUnit 5๋ก ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ตฌ์ฑ์ ์ ๊ณตํ๋ค.
๋ ๋ชจ๋์ ๊ฐ๊ฐ์ ํ๋ซํผ์ ๋ฐ๋ผ Kotest ํ ์คํธ๋ฅผ JUnit 5 ํ ์คํธ๋ก ์คํํ ์ ์๋๋ก ์ง์ํ๋ค. ์ด๋ฌํ ํตํฉ์ Kotest๋ฅผ ๋ค์ํ ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ฉฐ, JUnit 5์์ ํธํ์ฑ์ ๋ณด์ฅํ์ฌ Kotest๋ฅผ ๊ธฐ์กด์ ํ ์คํธ ํ๋ ์์ํฌ์ ํตํฉํ ์ ์๋๋ก ํ๋ค.
IntelliJ IDEA ์์ Kotest ํ๊ฒฝ ๋ง๋ค๊ธฐ
IntelliJ IDEA์์ Kotest ๊ตฌ๋ํ๋ ค๋ฉด, Kotest ํ๋ฌ๊ทธ์ธ์ ์ค์นํด์ผ ํ๋ค.
.[Setting]
-[Plugins]
์์ ๊ฐ์ kotest๋ฅผ ๊ฒ์ํด์ ์ค์นํ๋ค.