在Scala黄瓜中,我一直在尝试一些代码,这些代码可以在运行场景之前缓存一个值,并将其与最后的值进行比较(我正在测试泄漏)。我已经删除了我的代码,但实际上这是我所拥有的:
class MyHooks {
@Before()
def beforeScenario(): Unit = {
println("before scenario")
}
@After()
def afterScenario(): Unit = {
println("after scenario")
}
}
我已将测试配置为运行一个方案,并且得到以下输出:
after scenario
@RUNTEST
Scenario: Dummy Scenario
Given I have the statement
"""
SELECT *
FROM MY_TABLE
"""
When I execute the statement
Then I expect the result to contain 886 rows
1 Scenarios (1 passed)
3 Steps (3 passed)
这根本不是我所期望的,但是当我查看整个套件的输出时,它看起来像这样:
after scenario
@RUNTEST
Scenario: Dummy Scenario
Given I have the statement
"""
SELECT *
FROM MY_TABLE
"""
When I execute the statement
Then I expect the result to contain 886 rows
1 Scenarios (1 passed)
3 Steps (3 passed)
0m28.835s
Feature: MyFeature
before scenario
我不确定这是只是按照怪异的顺序打印东西,还是黄瓜实际上是按错误的顺序应用了钩子?我不认为这是一个打印问题,因为当我运行所有测试时,我得到的结果是不稳定的,这对我来说表明它可能是运行混乱,并可能缓存了先前测试的结果? / p>