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

时间:2012-12-20 12:33:07

标签: junit spock

我在一个包中组合了几个Spock测试类。我正在使用Junit 4.10。每个测试类都包含几个功能测试方法。

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

我希望这个“OneTimeSetup”方法只调用一次:

  • 我在包中运行所有测试类(例如,如果它们在测试套件中分组)
  • 我运行了几个测试类
  • 我只运行一个测试类
  • 我只在测试类中运行某个功能方法

通过阅读SO上的其他帖子,似乎这就是TestNG的@BeforeSuite所做的。

我知道Spock的setupSpec()和cleanupSpec()方法,但它们只能在给定的测试类中工作。我希望做一些像“setupTestSuite()”的事情。“如何在Spock中实现这一目标?

1 个答案:

答案 0 :(得分:4)

您可以编写全局扩展,使用JUnit测试套件,在辅助类中调用静态方法(例如来自setupSpec),只执行一次,或者让构建工具完成工作。 / p>