Scala Specs2:如何获取当前测试名称?
Scala Specs2: how to get current test name?
我正在使用 Scala 项目,使用 Specs2 进行测试。
我怎么知道我当前在其中的测试名称(形成测试上下文)?
这是我测试的代码结构:
class TestsE2E{
trait Context extends E2EScope {
...
}
"Test" should {
"do stuff" in new Context {
...
}
}
}
如果只是用测试名来记录,可以创建自定义ExamplesFactory
截取名称:
import org.specs2.mutable.{FragmentsBuilder, ExamplesFactory}
trait TestNameLogger extends ExamplesFactory { this: FragmentsBuilder =>
override implicit def exampleFactory: ExampleFactory = new TestNameLoggerMutableExampleFactory
class TestNameLoggerMutableExampleFactory extends MutableExampleFactory {
override def newExample(e: Example): Example = {
println(e.desc.raw)
super.newExample(e)
}
}
}
这个解决方案有点复杂,执行此操作的 API 会随着即将到来的 specs2 3.0. Another alternative is to create your own Notifier
而改变。
我正在使用 Scala 项目,使用 Specs2 进行测试。 我怎么知道我当前在其中的测试名称(形成测试上下文)?
这是我测试的代码结构:
class TestsE2E{
trait Context extends E2EScope {
...
}
"Test" should {
"do stuff" in new Context {
...
}
}
}
如果只是用测试名来记录,可以创建自定义ExamplesFactory
截取名称:
import org.specs2.mutable.{FragmentsBuilder, ExamplesFactory}
trait TestNameLogger extends ExamplesFactory { this: FragmentsBuilder =>
override implicit def exampleFactory: ExampleFactory = new TestNameLoggerMutableExampleFactory
class TestNameLoggerMutableExampleFactory extends MutableExampleFactory {
override def newExample(e: Example): Example = {
println(e.desc.raw)
super.newExample(e)
}
}
}
这个解决方案有点复杂,执行此操作的 API 会随着即将到来的 specs2 3.0. Another alternative is to create your own Notifier
而改变。