Junit spock:在执行任何测试类之前,需要一个钩子来执行一些设置步骤

Junit spock:在执行任何测试类之前,需要一个钩子来执行一些设置步骤,junit,spock,Junit,Spock,我有几个Spock测试类组合在一个包中。我正在使用JUnit4.10。每个测试类包含几个特性测试方法 在运行任何测试用例之前,我想执行一些设置步骤(例如将数据加载到数据库中,启动web服务器),但在测试开始时只执行一次 我希望仅调用此“OneTimeSetup”方法一次,无论: 我运行包中的所有测试类(例如,如果它们分组在测试套件中) 我运行了一些测试类 我只运行一个测试类 我只在测试类中运行某个特性方法 从其他帖子来看,TestNG的@BeforeSuite似乎就是这么做的 我知道斯波克的

我有几个Spock测试类组合在一个包中。我正在使用JUnit4.10。每个测试类包含几个特性测试方法

在运行任何测试用例之前,我想执行一些设置步骤(例如将数据加载到数据库中,启动web服务器),但在测试开始时只执行一次

我希望仅调用此“OneTimeSetup”方法一次,无论:

  • 我运行包中的所有测试类(例如,如果它们分组在测试套件中)
  • 我运行了一些测试类
  • 我只运行一个测试类
  • 我只在测试类中运行某个特性方法
从其他帖子来看,TestNG的@BeforeSuite似乎就是这么做的


我知道斯波克的setupSpec()和cleanupSpec()方法,但它们只在给定的测试类中工作。我想做一些类似“setupTestSuite()”的事情。如何在Spock中实现这一点?

您可以编写一个全局扩展,使用JUnit测试套件,在助手类中调用一个只执行一次工作的静态方法(比如从
setupSpec
),或者让构建工具完成这项工作