別のアセンブリからステップ定義が使用されている場合、定義に移動(F12)が機能しません。それを機能させる方法はありますか?
5 に答える
これは、Specflowのバグまたはそのようなものである可能性があります。私はまったく同じ問題を抱えています。機能ファイルからステップ定義に移動しようとすると、VisualStudioは一致するステップバインディングがないと言います。ただし、テストを実行しようとすると、正常に実行されるため、Specflowは実際に一致するステップ定義を検出(および使用)できます。
外部アセンブリでのバインディングは、SpecFlow 1.8 VisualStudioExtensionでは完全にはサポートされていません。それはここの彼らのドキュメンテーションに述べられています。SpecFlowはそれらをサポートしていますが、VisualStudioExtensionは部分的にしかサポートしていません。1.9でこの問題が解決するかどうかはわかりません。
当たり前のことかもしれませんが、必ずSpecFlow拡張機能をインストールしてください。
ツール->拡張機能/アップデート->オンライン->「Specflow」を検索
夕食に少し遅れていることは知っていますが、SpecFlowはすべてのバインディングデータをユーザーの%temp%フォルダーに保存しているようです。これらのファイルは、機能ファイルとステップファイルの間をマッピングする単純な.jsonファイルです。
したがって、ステップが.featureファイルと同じソリューションにある場合-SpecFlowは、正しいソースファイルとステップメソッドの正確な場所を検出できます。
ただし、ステップが参照されたdllにある場合、.json構成ファイルはdll内のメタデータを見つけるのに十分ではないため、F12は機能しません。
これには、F12を機能させるために、参照されるアセンブリに何らかの設計時の反映が必要になると思います。
@ShonnLyga本当に役に立ちました本当にありがとう
DLLからアセンブリを参照するために、これで使用できます
<specFlow>
<unitTestProvider name="NUnit" />
<stepAssemblies>
<stepAssembly assembly="YourDLLname" />
</stepAssemblies>
</specFlow>