3

[AfterTestRun]

私にとってこのフックは2回呼び出されています。

私の C# コードは正しく、各シナリオの最後に結果をコンカレント バッグに保存しています。

次に、[AfterTestRun]フックを使用して Concurrent Bag を呼び出し、データをデータベースに保存します。重複したデータが表示されるので、2 回呼び出されていると思います。

追加情報:
SpecRun を使用して、次のプロファイルと並行してテストを実行しています

実行 stopAfterFailures="1" retryCount="0" testThreadCount="3" testSchedulingMode="Sequential"

インストールされるパッケージ
SpecFlow バージョン 2.0.0
SpecRun.SpecFlow 1.3.0
SpecRun.Runner 1.3.0

SpecRun.SpecFlow を使用してテストを実行しています。

また、各機能内に複数のシナリオがある場合、このフックはどのように動作しますか? 現在、私は1を持っています。

ありがとう

4

1 に答える 1

1

ステップは specflow ではグローバルであり、ステップを再利用するための継承は不要です。実際、ステップ クラスを継承すると、それらに含まれるステップが重複してしまい、ここで発生した問題が発生します。詳細については、この回答を参照してください。

簡単な解決策は、[BeforeScenario]メソッドを独自のクラスに配置し、ステップ クラスにこれを継承させないことです。ステップと前後のシナリオの間で状態を共有する必要がある場合は、ここで概説されている状態共有手法のいずれかを使用してください。

于 2016-04-19T17:53:54.893 に答える