abendt
10/26/2022, 12:50 PMclass DataDrivenExampleSpec : StringSpec({
extension(MyListener())
withData(listOf(1, 2)) {
println("Test $it")
}
"single 1" {
println("single 1")
}
"single 2" {
println("single 2")
}
})
class MyListener : BeforeTestListener, AfterEachListener, AfterTestListener {
override suspend fun beforeTest(testCase: TestCase) {
println("beforeTest")
}
override suspend fun afterEach(testCase: TestCase, result: TestResult) {
println("afterEach")
}
override suspend fun afterTest(testCase: TestCase, result: TestResult) {
println("afterTest")
}
}
i would expect that the two after* callbacks to behave similiar regardless if the test is a data driven one or not.
However i am seeing that afterEach is not invoked for the data driven tests. Is this intended?
beforeTest
Test 1
afterTest
beforeTest
Test 2
afterTest
beforeTest
single 1
afterTest
afterEach
beforeTest
single 2
afterTest
afterEach
Davio
10/26/2022, 1:08 PMDavio
10/26/2022, 1:08 PMDavio
10/26/2022, 1:09 PMDavio
10/26/2022, 1:10 PMabendt
10/26/2022, 1:35 PMclass DataDrivenExampleShouldSpec : ShouldSpec({
extension(MyListener())
context("data") {
withData(listOf(1, 2)) {
println("Test $it")
}
}
context("direct") {
should("single 1") {
println("single 1")
}
should("single 2") {
println("single 2")
}
}
})
output
beforeTest
beforeTest
Test 1
afterTest
beforeTest
Test 2
afterTest
afterTest
beforeTest
beforeTest
single 1
afterTest
afterEach
beforeTest
single 2
afterTest
afterEach
afterTest
abendt
10/26/2022, 1:40 PMDavio
10/27/2022, 7:52 AMDavio
10/27/2022, 7:53 AMabendt
10/27/2022, 11:20 AMclass DataDrivenExample2Spec : StringSpec() {
override suspend fun beforeTest(testCase: TestCase) {
println("beforeTest")
}
override suspend fun afterEach(testCase: TestCase, result: TestResult) {
println("afterEach")
}
override suspend fun afterTest(testCase: TestCase, result: TestResult) {
println("afterTest")
}
init {
withData(listOf(1, 2)) {
println("Test $it")
}
"single 1" {
println("single 1")
}
"single 2" {
println("single 2")
}
}
}
beforeTest
Test 1
afterTest
beforeTest
Test 2
afterTest
beforeTest
single 1
afterTest
afterEach
beforeTest
single 2
afterTest
afterEach
Davio
10/27/2022, 1:16 PMDavio
10/27/2022, 1:16 PMDavio
10/27/2022, 1:20 PMDavio
10/27/2022, 1:20 PMAnouar di Kali
10/27/2022, 8:10 PMclass Demo : StringSpec({
afterTest {
println("AfterTest")
}
afterAny {
println("AfterAny")
}
withData(listOf(1, 2)) {
println("Test $it")
}
})
output:
Test 1
AfterTest
AfterAny
Test 2
AfterTest
AfterAnyabendt
10/28/2022, 10:12 AMDavio
10/28/2022, 10:15 AMsam
10/28/2022, 11:52 AMDavio
10/28/2022, 1:06 PMsam
10/28/2022, 1:39 PM