Maximiliano Sorich
Maximiliano Sorich

Reputation: 21

Test Suite in kotest

I don't know if I am missing something but I could not find anything that says how to do a test suite like in JUnit. Can someone help me? I saw that documentation offers grouping tests, but when I run from Gradle, the logs are really large, and not very useful

Upvotes: 1

Views: 818

Answers (1)

Karsten Gabriel
Karsten Gabriel

Reputation: 3682

You can group your tests using Tags, see https://kotest.io/docs/framework/tags.html.

For example, to group tests by operating system you could define the following tags:

object Linux : Tag()
object Windows: Tag()

Test cases can then be marked with tags using the config function:

import io.kotest.specs.StringSpec

class MyTest : StringSpec() {
  init {
    "should run on Windows".config(tags = setOf(Windows)) {
      // ...
    }

    "should run on Linux".config(tags = setOf(Linux)) {
      // ...
    }

    "should run on Windows and Linux".config(tags = setOf(Windows, Linux)) {
      // ...
    }
  }
}

Then you can tell Gradle to run only tests with specific Tags, see https://kotest.io/docs/framework/tags.html#running-with-tags

Example: To run only test tagged with Linux, but not tagged with Database, you would invoke Gradle like this:

gradle test -Dkotest.tags="Linux & !Database"

Tags can also be included/excluded in runtime (for example, if you're running a project configuration instead of properties) through the RuntimeTagExtension:

RuntimeTagExpressionExtension.expression = "Linux & !Database"

Upvotes: 0

Related Questions