메뉴에서 File > New > Project 를 선택한다.
이후에 나타나는 화면에서 아래와 같이 Gradle 을 선택 후 Additional Libraries and Frameworks 에 대한 항목으로
을 선택해준다.
꼭 이렇게 해주어야 하는지는 나도 잘 모른다. gradle 기반으로 프로젝트를 생성할 때 이렇게 하면 될것 같아서 이것 저것 선택해서 하다보니 ..;;ㅋㅋ
(maven, gradle 기반의 프로젝트를 진행해본 경험이 있다면 kotlin 에서 gradle 설정할 때도 거의 비슷한 과정으로 생성하게 된다는것을 깨달을 수 있다.)
artifactId, groupId 등을 입력해주고 프로젝트 생성을 위한 절차를 마친다.
프로젝트 생성후 모습
test 디렉터리까지 잘 잡혀있는 것을 확인 가능하다 :)
dependencies 항목을 아래와 같이 수정해준다.
dependencies {
implementation("org.codehaus.groovy:groovy-all:2.3.11")
implementation(kotlin("stdlib-jdk8"))
testImplementation("org.jetbrains.kotlin", "kotlin-test-junit5", "1.3.72")
}
Settings > Build,Execution,Deployment > Build Tools > Gradle > Runner > "Run tests using:"
아직 로컬 개발환경 전역으로 kotlin을 설치하지 않았다. 이런 이유로 intellij 내부의 kotlin 엔진을 사용하는것으로 설정했다.
참고자료
위의 자료를 참고했다. 나의 경우는 tasks 내에 test{...}를 추가해주는 방식으로 해결했다.
// ...
tasks {
// ...
test{
useJUnitPlatform()
}
}
plugins {
groovy
java
kotlin("jvm") version "1.3.72"
}
group = "io.study"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
implementation("org.codehaus.groovy:groovy-all:2.3.11")
implementation(kotlin("stdlib-jdk8"))
testImplementation("org.jetbrains.kotlin", "kotlin-test-junit5", "1.3.72")
}
configure<JavaPluginConvention> {
sourceCompatibility = JavaVersion.VERSION_1_8
}
tasks {
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
test{
useJUnitPlatform()
}
}
dependencies {
// ...
testImplementation("org.jetbrains.kotlin", "kotlin-test-junit5", "1.3.72")
}
data class Product(
val name: String,
val price: Double,
val onSale: Boolean = false
)
프로젝트 디렉터리 구조를 확인하기 위해 스샷도 함께 첨부했다~
GUI 메뉴를 활용해서 junit5 테스트 코드를 작성해보자. (사실 직접 클래스를 생성해서 수동으로 테스트 클래스를 생성하는게 편하긴 하다.)
JUnit5 library not found in the module 문구가 뜨는데, 방금 전에 kotlin-junit5 라이브러리를 build.gradle.kts에 추가해주었기 때문에 이 부분은 무시해도 된다.
별다른 설정 없이 OK 버튼을 클릭하자.
코틀린 디렉터리 (src/test/kotlin)을 선택하고 OK 클릭
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Test
internal class ProductTest {
@Test
@DisplayName("hello~!!")
internal fun testSomething(){
println("hello~!!")
}
}
테스트의 실행은 아래와 같이 화면에서 초록색 화살표 버튼을 클릭하면 실행된다.
테스트가 완료된 모습