实施TestCaseExtension时如何记录特定于测试的信息?

时间:2019-02-04 23:36:22

标签: kotlintest

tag:中,我要记录特定于测试的信息。乍一看,这样做似乎行得通:

TestCaseExtension

在IntelliJ IDEA中,第一个测试的输出为“方案:a”,而第二个测试的输出为“方案:b”。但是,将import io.kotlintest.* import io.kotlintest.extensions.SpecLevelExtension import io.kotlintest.extensions.TestCaseExtension import io.kotlintest.specs.DescribeSpec class MySpec : DescribeSpec({ describe("bar") { it("a") {} it("b") {} } }) { override fun extensions(): List<SpecLevelExtension> = listOf(MyExtension()) } class MyExtension : TestCaseExtension { override suspend fun intercept( testCase: TestCase, execute: suspend (TestCase, suspend (TestResult) -> Unit) -> Unit, complete: suspend (TestResult) -> Unit ) { execute(testCase) { testResult -> if (testCase.type == TestType.Test) { println(testCase.description.name) } complete(testResult) } } } 更改为describe("bar")时,第一个测试的输出将变为“方案:a [newline]方案:b”,而第二个测试的输出将变为空。

那么,如何正确地将记录的信息分配给每个测试?也许使用describe("foo")甚至不是正确的选择?


  • io.kotlintest:kotlintest-runner-junit5:3.2.1
  • JDK 10.0.2
  • IntelliJ IDEA 2018.3.2(社区版)

0 个答案:

没有答案