在Specs2(Scala)测试中捕获屏幕截图

时间:2014-12-14 16:54:04

标签: scala automation specs2

基于Scala Specs2的测试。

class MyTests {

  trait Context {
    ...
  } 

  "test number 1" should {
    "render stuff amazingly" in new Context {
      ...validations...
    }
  }

是否在Specs2中实现了截图捕获机制? 没有在官方网站上找到它,也没有在这里提到它。如果可能的话,很乐意学习如何实现它。

1 个答案:

答案 0 :(得分:0)

specs2中没有屏幕截图捕获功能。

您可以简单地使用Around这样的上下文:

trait Screenshot {
  // take a screenshot and store it under the given path
  def takeScreenshot(path: String): Unit = ???
}

trait AroundEach with Screenshot {

  // return a unique path
  def screenshotPath: String = ???

  def around[R : AsResult](r: =>Result): Result = {
    // execute the result
    val result = AsResult(r)
    if (!result.isSuccess) {
      val screenshot = takeScreenshot(screenshotPath)
      result.update(_+"\nScreenshot at"+screenshot)
    } else result
  }
} 

您还可以扩展ExampleFactory以使用示例说明创建屏幕截图路径。如果有任何不起作用,请参阅“用户指南”中的here并在邮件列表上发布消息。