C#Specflowテストプロジェクトに少なくとも3つの.featureファイルがあり、そのステップがあります。たとえば、次のようになります。
Given I am at the Home Page
最初にファイルにステップを記述Feateure1.feature
してstepメソッドを作成したとき、それをステップファイルに配置しました。たとえば、Steps1.cs
を初期化する基本クラスから継承しますFirefoxDriver
。私のクラスはすべて、StepsXXXX.cs
この基本クラスを継承しています。
Feature2.feature
次に、ステップを持っている、を書きましたGiven I am at the Home Page
。そして、そのステップは自動的に次のステップにバインドされましたSteps1.cs
「今まで、問題ありません。それは私が望んでいたこととほぼ同じです。テストプロジェクト全体で再利用可能な手順を実行する必要があります。ただし、問題は、異なるファイルにステップがあるシナリオを実行しているときはいつでも、StepsXXXX
さまざまなブラウザーインスタンスが実行されることです。
======
これは、My StepsXXXX
(バインディングクラス)がすべて、独自のIWebDriverを持つこの基本クラスから継承し、ステップが呼び出されると、他のすべて(シナリオの前後のメソッドを含む)がと呼ばれる。しかし、これを回避する方法がわかりません。
私はまだ再利用可能なステップが欲しいです。これらのステップを基本クラスに入れようとしましたが、うまくいきませんでした。バインディングも変更することを考えましたが、specflowは意味のある文字列を使用して変更するため、誤解を招く文字列に変更したくありません。
誰かがこれに遭遇しましたか?どんな助けでも本当にありがたいです。