2016-03-31 8 views
2

[AfterTestRun]はなぜ二度

が私のためにこのフックは二回呼び出されていると呼ばれる私のSpecflow [AfterTestRun]フックです。

私のC#コードは正確で、それぞれの末尾にありますシナリオ私は結果をコンカレントバッグに保存しています。

次に、[AfterTestRun]フックを使用して、コンカレントバッグを呼び出してデータをデータベースに保存します。私は重複したデータを見るので、2回呼び出されていると仮定します。

追加情報:
私は「=次のプロファイル

実行stopAfterFailures = "1" retryCount値= "0" testThreadCount = "3" testSchedulingModeと並行して、私のテストを実行するためにSpecRunを使用していますインストール済みシーケンシャル」

パッケージ
SpecFlowバージョン2.0.0
私は私のテストを実行するためにSpecRun.SpecFlowを使用していますSpecRun.SpecFlow 1.3.0
SpecRun.Runner 1.3.0

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

おかげ

+0

使用しているSpecFlowのバージョンはどれですか? どのテストランナーを使用していますか(NUnit、XUnit、SpecFlow + Runner、MSTest)? –

+0

こんにちは、私は私の質問を更新しました。私はSpecRun.SpecFlowを使用してテストをローカル/ Visual Studio Onlineで実行しています –

+0

は継承されたクラスの[AfterTestRun]メソッドですか? –

答えて

1

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

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

関連する問題