在 class 级别或容器级别设置标签

Setting tags at the class level or container level

使用 .config 我们可以按标签对测试进行分组,如下所述:link 示例:

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

据我所知,不可能在更高级别设置标签,例如以下不编译:

class MyTest : FreeSpec({
 "high level container with multiple tests".config(tags = setOf(Windows)) - {
    "test 1 of many for Windows" {
      // ...
    }

    "test 2 of many for Windows" {
      // ...
    }

    // more tests...    
  }
})

如何在 class and/or 容器级别对测试进行分组,而无需为每个测试重复 .config

截至目前,您无法在容器级别添加配置。我为此 https://github.com/kotest/kotest/issues/1410#issuecomment-619438772

创建了一个问题

从 Kotest 4.0.4 开始,您无法完全按照自己的意愿行事,但您可以在规范级别设置标签,然后将其应用于该规范中的所有测试。

例如,

class MyTest : FreeSpec({

  tags(Windows)

 "high level container with multiple tests" - {
    "test 1 of many for Windows" {
      // ...
    }

    "test 2 of many for Windows" {
      // ...
    }

    // more tests...    
  }
})

这可能会给您一个解决方法。