我正在使用Scala项目,使用Specs2进行测试。 我怎么知道我目前在其中的测试名称(形成测试环境)?
这是我测试的代码结构:
class TestsE2E{
trait Context extends E2EScope {
...
}
"Test" should {
"do stuff" in new Context {
...
}
}
}
答案 0 :(得分:2)
如果您只是使用测试名称进行记录,则可以创建自定义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而改变。另一种方法是创建自己的Notifier
。