さまざまなプロジェクトのSpecflowステップ定義クラス

StackOverflow https://stackoverflow.com/questions/5355948

  •  27-10-2019
  •  | 
  •  

質問

1つの名前空間/プロジェクトに最初に、もう1つの名前に2つ目のステップ定義クラスがあることは可能ですか?私はこのようなものです:

私が実行する私のテストプロジェクト:名前空間:abz.exceltestクラス名:abz.exceltest.excelstepdefinition

テストのロジックである私の他のプロジェクト:名前空間:abz.officeaddintEstlogicクラス名:abz.officeaddintestlogic.stepdefinition

私は両方のクラスに[バインディング]属性を持っていますが、テストプロジェクトにないこのクラス(abz.officeaddintestlogic.stepdefinition)が見つかりません。

ステップに一致するステップ定義は見つかりません。次のコードを使用して1つを作成します。

さまざまなプロジェクトで2つのステップ定義クラスを作成することは可能ですか?

役に立ちましたか?

解決

はい、それは - その機能は外部ステップと呼ばれます(参照 https://github.com/techtalk/specflow/blob/master/tests/featuretests/externalsteps/externalsteps.feature)

あなたがおそらく欠けているのは、このようなapp.config設定です:

<specFlow>  
<stepAssemblies>
  <stepAssembly assembly="ExternalStepsCS" />
</stepAssemblies>

この場合、外部STEPSCSと呼ばれる外部アセンブリのステップを探します。

他のヒント

私はしばしば「テストヘルパー」ライブラリを持ち、複数のテストプロジェクト間で共通コードが共有されます。この共有ライブラリにクラスがあります。電話してみましょう CucumberBase. 。それから、実際のテストプロジェクトでは、次のようなクラスがあります。

[Binding]
public class SomeFeatureSpecs : CucumberBase
{
    ...
}

すべての大衆 CucumberBase でタグ付けされた方法 [Given()]/[When()]/[Then()]/等。私の実際のテストプロジェクトで、 SomeFeatureSpecs クラス。これにより、共通の機能もオーバーライドして拡張できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top