0

これは、タグの設定に関する以前の質問のフォローアップです 。SpecFlowでタグを使用して、使用する適切な環境を決定できますか? これらのタグからの変数の設定:NUnit/SpecFlowフレームワークで使用されるURL変数を設定する方法

NUnitテストの入力を支援するためにいくつかの変数を設定しましたが、NUnitランナーが最初のタグに適合するテストを見つけると、テストは2番目のタグの設定で実行することがわかりました。タグは、実行するテストだけでなく、使用する変数を知るために重要であるため、これが問題の原因になっています。

したがって、次のタグがある場合:

@最初

@first @second

@2番目

@secondを実行すると、すべて問題ありません。@firstを実行すると、@ firstのみが正常なシナリオが得られますが、@ first @secondが両方あるシナリオでは、@ firstが存在するため、シナリオが実行されます。ただし、@secondのパラメーターが使用されます。 。私はNUnit-Consoleを介してDLLを実行しており、テストはSpecFlowを介して記述されているため、問題がどこにあるのかわかりません。

このように実行するテストを設定するためのアドバイスはありますか?

4

1 に答える 1

1

あまり具体的ではありませんが、次のような機能ファイルがあるようです。

@first
Scenario: A - Something Specific happens under the first settings
    Given ...etc...

@second
Scenario: B - Something Specific happens under the second settings
    Given ...etc...

@first @second
Scenario: C - Something general happens under the first and second settings
    Given ...etc...

「最初の」カテゴリのすべてのテストを実行して、NUnitで実行するテストを選択しているようです。

次のようなイベント定義を設定した場合:

[BeforeFeature("first")] 
public static string FirstSettings() 
{ ... }

[BeforeFeature("second")] 
public static string SecondSettings() 
{ ... }

シナリオCを実行するFirstSettings()と、そのSecondSettings()前に実行されます。これは、@secondカテゴリを使用してNUnitで実行するテストを選択したかどうかには関係ありません。

これが、2番目の設定が両方のタグでテストに適用されているのを確認している理由です。2番目の設定が最初の設定を上書きすると思いますよね?

このようなテストを設定するための私の唯一のアドバイスは、イベントなどを特定のタグにバインドすることは有用ですが、使用はできるだけ少なくする必要があるということです。代わりに、個々のステップ定義を再利用可能にし、可能な場合はステップを使用してテスト環境をセットアップしGivenます。

于 2012-01-26T20:28:58.053 に答える