Вот как я его настроил: во-первых, убедитесь, что вы ссылаетесь на JUnit 5 вместо 4, например, у меня это есть в разделе dependencies
моего build.gradle
:
testImplementation "org.springframework.boot:spring-boot-starter-test:${springBootVersion}"
testImplementation "org.jetbrains.kotlin:kotlin-test"
testImplementation "org.jetbrains.kotlin:kotlin-test-junit"
testImplementation "io.kotlintest:kotlintest-extensions-spring:3.1.10"
testImplementation 'io.kotlintest:kotlintest-runner-junit5:3.1.10'
testImplementation "org.junit.jupiter:junit-jupiter-api:5.3.1"
testImplementation "org.junit.jupiter:junit-jupiter-engine:5.3.1"
Также добавьте это к build.gradle
:
test {
useJUnitPlatform()
}
Тогда в вашем классе интеграционного теста есть это (обратите внимание на переопределение listeners
, без которого оно не будет работать):
import org.springframework.boot.test.context.SpringBootTest
import io.kotlintest.spring.SpringListener
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = [MyApplication::class])
class MyTestStringSpec : StringSpec() {
override fun listeners() = listOf(SpringListener)
init {
// Tests go in here
}
}
Очевидно, вы можете заменить StringSpec
любым другим тестом Котлина стилями тестирования , например FunSpec
, ShouldSpec
и т. Д.