gpt4 book ai didi

specflow - SpecFlow中的全局[BeforeScenario]、[AfterScenario]步骤

转载 作者:行者123 更新时间:2023-12-04 09:15:09 25 4
gpt4 key购买 nike

我们正在尝试在我们的规范流测试中实现全局 Hook ,但不完全确定 [BeforeScenario][AfterScenario]归因方法起作用。

就我所见,这些属性总是在一个类中定义,其中包含在一些场景中使用的特定步骤。

他们可以去某个地方,以便适用于所有场景吗?或者是否使用 [BeforeScenario] 归因方法和 [AfterScenario]导致它们在所有场景中运行,而不管它们实际放置在哪里?

最佳答案

嗯...据我所知,根据文档,这些钩子(Hook)始终是全局的,即来自 http://www.specflow.org/documentation/hooks/

Hooks

The hooks (event bindings) can be used to perform additional automation logic on specific events, like before the execution of a scenario.

The hooks are global but can be restricted to run only for features or scenarios with a specific tag (see below). The execution order of hooks for the same event is undefined.



事实上,通过制作一个带有以下内容的小型演示项目
[Binding]
public class Unrelated
{
[BeforeScenario]
public void WillBeCalledIfGlobal()
{
Console.WriteLine("I'm global");
}
}

[Binding]
public class JustTheTest
{
[Given("nothing")]
public void GivenNothing()
{
// Don't do anything
}
}

然后是测试规范
As a developer
In order to understand how BeforeSpecifcation works
I want to know what the following does

Scenario: See if BeforeSpecifcation hook gets called
Given nothing

得到输出
I'm global
Given nothing
-> done: JustTheTest.GivenNothing() (0.0s)

所以看起来文档确实是正确的,您应该使用标记来控制 BeforeScenario\ AfterScenario在您的场景之前或之后运行。

这里还有一个很好的例子来说明标记是如何工作的 -> Feature-scoped step definitions with SpecFlow?

关于specflow - SpecFlow中的全局[BeforeScenario]、[AfterScenario]步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19642514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com