如何获取当前scalajs/uTest测试用例的名称

How to get the name of the current scalajs / uTest test case

如何获取当前运行ning uTest 测试用例的名称?

在测试用例中,我通常使用 println(...) 或 log.debug(...) 来打印和检查各种值。 在测试用例的开头我打印了测试用例的名称。

我总能做到:

object MyTests extends TestSuite

  def tests = TestSuite {

    "MyTest01" - {

      println("MyTest01 starting ***************************************************")

      val x = Thing.doComplexCalc
      println("x = " + x )

      val y = AnotherThing.doSomethingMore( x )
      println("y = " + y )
      assert(y=="mysterious output")
    }
  }
}

在此(极其简化的)示例中,"MyTest01" 被重复。我正在寻找的是一种删除重复的方法,例如像这样:

object MyTests extends TestSuite

  def tests = TestSuite {

    "MyTest01" - {

      println(getTest().name + " starting ***************************************************")

      val x = Thing.doComplexCalc
      println("x = " + x )

      val y = AnotherThing.doSomethingMore( x )
      println("y = " + y )
      assert(y=="mysterious output")
    }
  }
}

测试名称可从 tests.toSeq().name 获得,但如何知道 运行ning 是什么情况,尤其是当它们 运行 使用 sbt 并行时。

目前无法使用。有一个悬而未决的问题可以做到这一点

https://github.com/lihaoyi/utest/issues/71

import utest._
...
val name = implicitly[utest.framework.TestPath].value