さまざまなレベルのテスト用にSpecFlowを設定することを検討しています。その中で、どのテストを実行するかをフィルタできます。特定の条件でspecflow仕様をスキップする
たとえば、完全なGUIテストを実行したいとします。ここでは、開発環境でGUIテストの依存関係を構築し、guiで実行された手順を使って@guiタグ付きのすべての仕様を実行します。また、同じスクリプトから、@ smokeというタグの付いたテストだけを実行し、デプロイされた環境に必要な依存関係を設定し、apiで実行されるステップを設定します。
specflowランナーを実行しているときにタグをフィルタすることができますが、テスト実行のコンテキストで各テストがどのように動作するかを変更する必要があります。また、ビルドサーバー上で実行するときに、この動作の変更を単一のconfig /コマンドライン引数で切り替えることも欲しいです。
これまでのところ私の解決策はテストの実行ごとに振る舞いを注入できるように、テストの種類ごとにビルド構成を持ち、configを変換することです。しかし、タグでフィルタリングする正しい方法についてはわかりません。
私はこのようなsomethigを行うことができます:
[BeforeFeature]
public void CheckCanRun()
{
if(TestCannotBeRunInThisContext())
{
ScenarioContext.Current.Pending();
}
}
私はこれが働くだろうと思います(それが機能を実行しないだろう)が、テストでは、まだ私は「場合は厄介だろうこれ、私のテスト結果に出てくるでしょう私のタグで大部分のテストを除外しています。私はこれを行うことができますが、完全に実行されている機能を削除する方法は?
これらのテストを実行しない場合、どのようにテストを実行していますか?組み込みのVSランナーを使用していますか?コマンドラインから?ビルドサーバーで? –
@SamHolder resharperテストランナーを使用した開発中とCIサーバー(異なるビルドレベルで実行される別の構成を使用)の両方で、また可能であれば、デプロイされたサーバーでデプロイメントが正常に行われたことを確認するためのいくつかの仕様... –