BeforeScenarioBlock 仅在 "Given" 语句之前执行

BeforeScenarioBlock to execute only before "Given" statement

基于 SpecFlow documentation[BeforeScenarioBlock] 挂钩将在 "Given" 和 "When" 语句之前调用。有没有办法让 [BeforeScenarioBlock] 钩子只在 "Given" 语句之前被调用?

A [BeforeScenarioBlock] 将 运行 在场景中的任何 'block' 之前,即在每组单独的 GivenWhen 或 [=14= 之前] 块。没有内置的方法来指定一个钩子应该只在特定类型的块之前 运行 我不认为但我相信它应该足够直接以确保代码只 运行 s 在钩子代码中的特定块之前。像这样:

[BeforeScenarioBlock]
public void BeforeScenarioBlock()
{
    if (ScenarioContext.Current.CurrentScenarioBlock == ScenarioBlock.Given)
    {
        //execute the code before the given
    }
}

虽然我没有测试过这个。