Spock的@Unroll与@Stepwise

时间:2019-04-04 13:28:04

标签: spock

说我有一个Specification,里面有一个@Unroll测试

class MySpec extends Specification {

  @Unroll
  def "some test, executed n times, with n>1"() {
    // when, then, where
  }
}

注释MySpec待执行@Stepwise是否多余?这是作为一个测试(连续执行n次)还是作为n个测试(并行执行)?

1 个答案:

答案 0 :(得分:2)

@Stepwise确保所有测试方法都按照源文件中显示的顺序运行。

@Unroll对于参数化测试很有用,因为它会强制将单个测试方法中的所有测试方案都报告为单独的测试运行。

因此,在您的情况下,@Stepwise是多余的,并且所有展开的测试均按照where子句中指定的顺序执行。

通常在Spock 1.x中,所有测试都是在行中执行的,甚至是从where子句中展开的测试。 Spock 2.0已计划并行化-如您在此处看到的https://github.com/spockframework/spock/issues/157