7

シナリオの概要(別名シナリオテンプレート)があり、VS2012のテストエクスプローラーを使用してテストを一覧表示したいと思います。デフォルトのテストグループ化は「プロジェクト」名で行われます。これに固執すると、シナリオアウトラインからのテストは、プロジェクトのグループではなく、「外部」グループに含まれます。

これはなぜですか、それに対する解決策/回避策はありますか?

私のシナリオでは、テストエクスプローラーを使用して、特定のプロジェクトのすべてのテストを実行したいと考えています。それらすべてに同じ特性を設定することは愚かであり、人間の過ちを犯しがちです。

私のソリューションには、このようなプロジェクトが10個あり、まもなくさらに追加される予定です。したがって、プロジェクトのシナリオ概要テストを「外部」の下に保持すると、誰かがそれらを見逃したり、別のプロジェクトに属するシナリオ概要生成テストを取得したりする可能性があります。

アップデート

GitHubユーザーのShashi(https://github.com/shashiprabhakar)がSpecFlowの寄稿者に問題を記録しました:https ://github.com/techtalk/SpecFlow/issues/275 。どうもありがとう、メイト!追跡を開始したので、そこで修正/回避策が提案された場合は、ここに回答として投稿します。

4

2 に答える 2

6
<specFlow>
  <unitTestProvider name="..." /> <!-- this you have already -->
  <generator allowDebugGeneratedFiles="true" /> <!-- this is the important setting -->
</specFlow>

これは、GasparNagyがApp.configファイルで推奨している構成です。「allowDebugGeneratedFiles」は1つのチケットのようです。タグとそのサブタグの詳細については、公式のSpecFlow構成ページを参照してください。ただし、TRUEに設定することは最初のステップにすぎません。

Gasparが提案しているように、次のステップは、ソリューションエクスプローラーでプロジェクトファイルを右クリックし、[フィーチャファイルの再生成]オプションを選択することです。

注意:allowDebugGeneratedFilesフラグを設定してから.featureファイルを再生成すると、実際に何が起こるか、SpecFlowは.feature.csファイルから#line非表示#line番号を削除するだけです。

最後に、再構築の前または後にVisualStudio2012を再起動することを個人的にお勧めします。上記の手順を試したところ、Visual Studioを再起動した後でのみ、テストエクスプローラーにテストが正しく表示されました。

PS:Gasparは、allowDebugGeneratedFilesフラグが立てられた場合(= true)、「SpecFlowシナリオの実行」オプションの使用は機能しなくなることに注意しました。ただし、プロジェクトファイルを右クリックすることで、そのオプションを使用できました。Gasparの提案を試す前でも、.featureでそのオプションを使用しても機能しなかったので、彼が言及していた欠点であるに違いありません。

PS#2:Gasparは、SpecFlow1.9.2でそのような欠点がなくなることはないとも述べています。

于 2013-03-15T09:35:54.550 に答える
0

Gaspar(https://github.com/gasparnagy )がGitHubの問題( https://github.com/techtalk/SpecFlow/issues/275 )へのコメントで提案したように、ソリューションエクスプローラーでプロジェクトファイルを右クリックします次に、[SpecFlowシナリオの実行]を選択すると、テストエクスプローラーのプロジェクトグループ化の優れた回避策になります。

提案が有効であることを確認できます-SpecFlow1.9.0でテストしました。

ただし、それでも、テストエクスプローラーと、シナリオの概要で生成されたテストが配置される奇妙な「外部」テストグループには問題が残ります。

詳細が明らかになった場合は、この回答を更新するか、新しい回答を投稿します。

于 2013-03-13T15:02:37.233 に答える