うさぎ組

ソフトウェア開発、チームによる製品開発、アジャイル、ソフトウェアテスト

SpecFlowでステップファイルが存在するのにフィーチャファイルからマッチできないときの対処方法

SpecFlowという.NETのCucumberなものがあります。featureファイルからstepファイルを自動生成する機能や、featureファイルの特定stepから該当するstepファイルのメソッドに移動できる機能もあります。

Specification by Example: How Successful Teams Deliver the Right Software

Specification by Example: How Successful Teams Deliver the Right Software

これがたまに、該当するstepファイルおよびメソッドがあるのに「matchするstepがありません」という挙動をする時があります。でも、テストは実行できます。謎です。

謎は置いといてどうやって解決するかは次の2つのうちどちらかです。

再生成する

FeatureファイルはSpecFlowが裏でC#ファイルに自動変換しています。このファイルを再生成することで解決することがあります。

対象のプロジェクトを右クリックして[Regenerate Feature Files]を選択します。

f:id:kyon_mm:20140716173122p:plain

一時ファイルを削除する

SpecFlowは実は一時ファイルをつくってマッピングもしています。これが実は最新化されていないとか、なにか不都合な感じになっているときがあるので削除してしまうのがよいです。再生成されます。

  1. Visual Studioを落とします。
  2. Explorerでパスに%TEMP%と打つとログインユーザーの一時ファイルをいれてあるディレクトリに移動できます。ここで "specflow-stepmap-"で始まるファイルがあると思います。これらを削除しましょう。
  3. Visual Studioを再起動します。

Have a good test.