如何获取当前scalajs/uTest测试用例的名称
如何获取当前运行的uTest测试用例的名称 在测试用例期间,我通常使用println(…)或log.debug(…)来打印和检查各种值。 在测试用例的开头,我打印测试用例的名称 我总能做到这一点:如何获取当前scalajs/uTest测试用例的名称,scala,unit-testing,scala.js,utest,Scala,Unit Testing,Scala.js,Utest,如何获取当前运行的uTest测试用例的名称 在测试用例期间,我通常使用println(…)或log.debug(…)来打印和检查各种值。 在测试用例的开头,我打印测试用例的名称 我总能做到这一点: object MyTests extends TestSuite def tests = TestSuite { "MyTest01" - { println("MyTest01 starting *************************************
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中提供了Test name,但如何知道正在运行的案例,特别是在使用sbt并行运行的情况下。目前不可用。这是一个悬而未决的问题
这是一个好消息。有机会在下一个版本中使用它吗?可能会在下一个版本出现时出现。没有回答这个问题。以下其他问题和/或该问题的PRs也不回答该问题:(虽然这个代码片段可以回答这个问题,但解释它如何回答这个问题将确保它对未来的访问者来说仍然是有价值的。@miken32:这个问题问的是如何获得某个测试用例的名称。这个代码片段非常清楚,为这个问题提供了直接、简洁和精确的答案。顺便说一句,我甚至提供了mport语句,这是人们很少提供的。@RichardGomes,代码片段看起来不错。但不要假设代码本身就说明了问题!需要的是对问题的简短上下文回应;以一种回应问题细节的方式,简洁地描述代码示例所做的事情。它不需要太长,但不需要太长需要一个答案:-)
import utest._
...
val name = implicitly[utest.framework.TestPath].value