SpecFlowでステップファイルが存在するのにフィーチャファイルからマッチできないときの対処方法
SpecFlowという.NETのCucumberなものがあります。featureファイルからstepファイルを自動生成する機能や、featureファイルの特定stepから該当するstepファイルのメソッドに移動できる機能もあります。
Specification by Example: How Successful Teams Deliver the Right Software
- 作者: Gojko Adzic
- 出版社/メーカー: Manning Pubns Co
- 発売日: 2011/06/28
- メディア: ペーパーバック
- クリック: 4回
- この商品を含むブログを見る
これがたまに、該当するstepファイルおよびメソッドがあるのに「matchするstepがありません」という挙動をする時があります。でも、テストは実行できます。謎です。
謎は置いといてどうやって解決するかは次の2つのうちどちらかです。
再生成する
FeatureファイルはSpecFlowが裏でC#ファイルに自動変換しています。このファイルを再生成することで解決することがあります。
対象のプロジェクトを右クリックして[Regenerate Feature Files]を選択します。
一時ファイルを削除する
SpecFlowは実は一時ファイルをつくってマッピングもしています。これが実は最新化されていないとか、なにか不都合な感じになっているときがあるので削除してしまうのがよいです。再生成されます。
- Visual Studioを落とします。
- Explorerでパスに%TEMP%と打つとログインユーザーの一時ファイルをいれてあるディレクトリに移動できます。ここで "specflow-stepmap-"で始まるファイルがあると思います。これらを削除しましょう。
- Visual Studioを再起動します。
Have a good test.