6

这可能已经提出,也许是一个愚蠢的问题。

无论如何,我一直在研究 SpecFlow 并想知道如何删除该功能的种子数据。这些种子数据在不同的场景中共享。有没有一种优雅的方式来做到这一点?也许在调用 testRunner.OnFeatureEnd() 时注入事件的能力?

4

1 回答 1

8

您可以使用挂钩。

挂钩是在 Gherkin 功能执行期间的特定时间执行的方法。

在执行期间有几个用于不同事件的钩子。

在 SpecFlow 中,您可以在具有特殊属性的 [Binding] 类中定义挂钩。可以使用以下钩子:

[BeforeTestRun]、[AfterTestRun]、[BeforeFeature]、[AfterFeature] [BeforeScenario]、[AfterScenario]、[BeforeScenarioBlock]、[AfterScenarioBlock]、[BeforeStep]、[AfterStep]

例子:

https://github.com/techtalk/SpecFlow-Examples/blob/master/ASP.NET-MVC/BookShop/BookShop.AcceptanceTests.Selenium/StepDefinitions/BookSteps.cs

https://github.com/techtalk/SpecFlow/blob/master/Tests/FeatureTests/BeforeAfterHooks/BeforeAfterHooksSteps.cs

于 2010-12-10T12:20:24.033 回答