Describe runs once: in this example 'counter' will be '1'
describe-runs-once
Code
package com.glassthought.sandboximport io.kotest.core.spec.style.DescribeSpecclass DescribeSpecExample : DescribeSpec({ var counter = 0 describe("Counter example for DescribeSpec") { counter++ println("Counter in describe: $counter") it("First IT block") { println("Counter in First IT: $counter") } it("Second IT block") { println("Counter in Second IT: $counter") } describe("Nested Describe") { it("Nested IT block") { println("Counter in Nested IT: $counter") } } }})
Command to reproduce:
gt.sandbox.checkout.commit 581c4a01f0e91e73f0e4 \&& cd "${GT_SANDBOX_REPO}" \&& cmd.run.announce "./gradlew test --rerun-tasks"
Recorded output of command:
com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec STANDARD_OUT Counter in describe: 1com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > First IT block STARTEDcom.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > First IT block STANDARD_OUT Counter in First IT: 1com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > First IT block PASSEDcom.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > Second IT block STARTEDcom.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > Second IT block STANDARD_OUT Counter in Second IT: 1com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > Second IT block PASSEDcom.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > Nested Describe > com.glassthought.sandbox.DescribeSpecExample.Nested IT block STARTEDcom.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > Nested Describe > com.glassthought.sandbox.DescribeSpecExample.Nested IT block STANDARD_OUT Counter in Nested IT: 1
If you want code to execute per it() use beforeTest
Counter is incremented with 'beforeTest'
Code
package com.glassthought.sandboximport io.kotest.core.spec.style.DescribeSpecvar counter = 0class DescribeSpecExample : DescribeSpec({ describe("Counter example for DescribeSpec") { beforeTest { counter++ } println("Counter in outer describe: $counter") it("First IT block") { println("Counter in First IT: $counter") } it("Second IT block") { println("Counter in Second IT: $counter") } describe("Nested Describe") { println("Counter in nested describe: $counter") it("Nested IT block-1") { println("Counter in Nested IT-1: $counter") } it("Nested IT block") { println("Counter in Nested IT-2: $counter") } } }})
Command to reproduce:
gt.sandbox.checkout.commit 92ede4c421dde74fb8c2 \&& cd "${GT_SANDBOX_REPO}" \&& cmd.run.announce "./gradlew test --rerun-tasks"
Recorded output of command:
Counter in outer describe: 0 Counter in First IT: 1 Counter in Second IT: 2 Counter in nested describe: 3 Counter in Nested IT-1: 4 Counter in Nested IT-2: 5BUILD SUCCESSFUL in 1s3 actionable tasks: 3 executed