为什么在使用 Spock 的 Geb 测试中使用继承时,@Stepwise 不能跨 class 边界工作?

Why doesn't @Stepwise work across class boundaries when using inheritance in a Geb test using Spock?

虽然这可能不是最好的方法,但使用继承来组成一套 Geb 测试(使用 Spock)是相当普遍的。

使用 @Stepwise 对完成这项工作至关重要,但它似乎无法跨越 class 边界,如图所示:

我有一个 hack 解决方案来解决这个问题,但我真的很想知道这是预期的行为还是 Geb 或 Spock 应该调查的错误。

逐步注释仅适用于单个规范。它从未打算跨越 类 或跨越层次结构(Spock 邮件列表中的一个流行请求)。

官方 Javadoc 中是这样说的(重点是我的):

Indicates that a spec's feature methods should be run sequentially in their declared order (even in the presence of a parallel spec runner), always starting from the first method. If a method fails, the remaining methods will be skipped. Feature methods declared in super- and subspecs are not affected

http://spockframework.github.io/spock/javadoc/1.0/spock/lang/Stepwise.html

回答您最初的问题:这是预期的行为