【问题标题】:Determine order of execution of Spock tests确定 Spock 测试的执行顺序
【发布时间】:2012-11-14 14:04:25
【问题描述】:

有没有办法设置在 Spock 规范中执行测试的顺序?

例如:

class MySpec extends IntegrationSpec {
    def 'test A'...

    def 'test B'...
}

我希望始终在“测试 B”之前执行“测试 A”

这是因为我正在使用 Geb 和 Spock 进行一些功能测试,并且数据不会在测试之间回滚。

【问题讨论】:

  • 糟糕,看来这不是星际迷航中的小林丸测试。

标签: grails spock geb


【解决方案1】:

您可以在规范上使用@Stepwise 注释,spock 将按照指定的顺序运行规范的每个测试定义。看this example

【讨论】:

  • 对于 Geb,使用 Geb(Reporting)Spec@Stepwise
  • 从 IntegrationSpec 扩展时,@Stepwise 有效,但在扩展 GebReportingSpec 时则无效。知道为什么吗?
  • 事实上,它确实适用于 GebReportingSpec。我遇到的问题与我扩展基本规范的规范有关。我的 subSpec 有一个设置方法,我认为(添加到继承中)可能会导致我的问题。
  • 这是@Stepwise 和继承之间的已知问题:groups.google.com/forum/?fromgroups=#!topic/spockframework/…。还有code.google.com/p/spock/issues/detail?id=183。事实上,由 Pangea 发布。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-14
相关资源
最近更新 更多