确定 Spock 测试的执行顺序
Posted
技术标签:
【中文标题】确定 Spock 测试的执行顺序【英文标题】:Determine order of execution of Spock tests 【发布时间】:2012-11-14 14:04:25 【问题描述】:有没有办法设置在 Spock 规范中执行测试的顺序?
例如:
class MySpec extends IntegrationSpec
def 'test A'...
def 'test B'...
我希望始终在“测试 B”之前执行“测试 A”
这是因为我正在使用 Geb 和 Spock 进行一些功能测试,并且数据不会在测试之间回滚。
【问题讨论】:
糟糕,看来这不是星际迷航中的小林丸测试。 【参考方案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 发布。以上是关于确定 Spock 测试的执行顺序的主要内容,如果未能解决你的问题,请参考以下文章