2017-08-29 12 views
0

Specflowがサポートする3種類のカスタムプラグインの違いは何ですか?私はCodedUI用のジェネレータプラグインを今作成しています。この質問は何度も何度も何度も繰り返されています。ドキュメンテーションは漠然としているか不完全であるため、ここでコミュニティに尋ねると思いますランタイム、ジェネレーター、およびランタイム/ジェネレーターのプラグインが含まれます。彼らは何をして、プラグインが追加されたときにSpecflowの機能をどのように変更しますか?3種類のSpecflow Plugins(ランタイム、ジェネレータ、ランタイム/ジェネレータ)の違いは何ですか?

コードを記述する方法を知っていると便利なので、私がやっていることの背後にある理論も知りたいと思います。

答えて

1

SpecFlowは現在、デザインやコンパイル時にフィーチャーファイルを.NET(C#/ VB)テストクラスに変換する方法で動作します。これらの生成クラスはMyStuff.feature.csファイルにあります。

生成されたファイルからテスト(SpecFlowシナリオ)を実行すると、SpecFlowランタイムを使用して、ステップ定義、フック、およびシナリオ手順の自動化に必要なすべてを見つけることができます。

ジェネレータプラグインは、デザインやコンパイル時のコード生成に影響を与える可能性があります(たとえば、テストメソッドに対して特別な属性を生成できます)。ランタイムプラグインは、テストの実行に影響を与える可能性があります(特別なログの追加など)。ランタイム/ジェネレータは、両方を変更する単なるプラグインです。

ジェネレータプラグインがロードされ、デザインやコンパイル時に実行されるため、すべてのプラグイン依存関係が利用可能であることを確認する必要があります。例えば。アプリからプロジェクトのいずれかへの参照を持つことはできません。なぜなら、ジェネレータが既に実行されていなければならない時点で未完成の可能性があるからです。

+0

Gasparさん、ありがとうございました。それは本当に役立つ説明であり、まさに私が探していたものでした。 Specflowを学ぶ誰かが、Specflowがドキュメンテーションでしていることの背後にあるすべての理論を持っていないので、非常に不満です。ご協力いただきありがとうございます! –

関連する問題