testing - 当 Spock 测试失败时执行一些操作

标签 testing spock

我想在 Spock 测试失败时执行一些操作。具体来说,截图。是否可以?怎么做?

最佳答案

创建监听器类

class ExampleListener extends AbstractRunListener {

  def void error(ErrorInfo error) {
    println "Actual on error logic"
  }
}

然后使用为每个规范执行的 IGlobalExtension 的实现将其添加到每个规范

class GlobalSpecExtension implements IGlobalExtension {

  @Override
  void visitSpec(SpecInfo specInfo) {
    specInfo.addListener(new ExampleListener())
  }
}

最后在 META-INF/services 目录 中创建名为 org.spockframework.runtime.extension.IGlobalExtension 的文件(通常在 src/test/resources 如果您使用的是 Maven)以及您的 IGlobalExtension 实现的全名,例如

com.example.tests.GlobalSpecExtension

关于testing - 当 Spock 测试失败时执行一些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16420034/

相关文章:

testing - 软件测试术语

使用 Spock 进行测试时,Grails 无法将服务注入(inject)域

java - 如何在groovy测试用例中验证java的arraylist的每个条目

unit-testing - 在Spock中调用模拟时是否会创建新的返回对象?

java - SPOCK:如何模拟供应商行为

ruby-on-rails - 提交者在 Ruby 社区中使用什么测试环境设置?

php - Loader.io 测试 "Maintain client load"

javascript - 模拟在同一模块中导出和调用的模块函数?

unit-testing - Grails单元测试无效性

go - 如何测试依赖是否被正确调用