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 に答える