2013-12-16 33 views
8

私はVisual Studio 2010を手に入れました。私たちが扱うVSソリューションは2つあります。最初はWebアプリケーションであり、2番目はSpecFlowテストです。 SpecFlow機能を実行するだけで、Visual Studioの2つのインスタンスを同時に実行すると、使用可能なすべてのRAMが摂られているため、処理が遅くなります。MSTestを使用してコマンドラインからSpecFlowシナリオをどのように実行しますか?

私はGoogleとStackOverflowで検索しましたが、MSTestのコマンドラインツールでMSのドキュメントを閲覧しましたが、答えが見つかりませんでした。完全なSpecFlowテストスイートには45分かかりますが、実際にはいくつかのシナリオを実行するだけです。

MSTestを使用してコマンドラインから個別のSpecFlow機能を実行する方法や個々のシナリオを実行する方法があるのだろうか?

+0

また、NCrunch(http://NCrunch.net)またはContinuousTests(http://www.continuoustests.com)を検討することもできます。これらのツールは両方とも、可能な限り迅速にテストを実行するように設計されています。私はNCrunchを使用しています*私の変更*モードの影響を受けたテストを実行して、ちょうどあなたの後になるでしょう – AlSki

答えて

9

シーンの後ろにあるspecflowテストは、通常のmstest単体テストです。あなたが/テスト・フラグを使用することができますいくつかの特定のシナリオを複数回実行するには

mstest /testcontainer:tests.dll /test:GivenMyScenarioWhenIDoSomeStuff 

:特定のシナリオを実行するには

:だから、のようなものを使用して、それらを同じ方法で実行することができるはず

あなたのシナリオにタグを追加する場合は機能

mstest /testcontainer:tests.dll /test:MyFeatureName 

を実行するには

mstest /testcontainer:tests.dll /test:GivenMyScenarioWhenIDoSomeStuff /test:GivenMyScenarioWhenIDoSomemthingElse 

例えば@MyTagを使用して、あなたはまた、あなたはそれが必要MSTESTとfamilliarであれば、物事が実際にどのように動作するかの手がかりを得るためにあなたの機能ファイルの背後に生成されたコードを見てくださいオプション

/category:MyTag to filter down the scenarios to run. 

を使用することができますかなり簡単です。

+0

これは答えのように見えますが、私は別の問題に対して頭を上げています。すべてのテストプロジェクトの依存関係をNuGet経由でインストールしました.NuGetはこれらのDLLをすべて "packages"ディレクトリに入れます。 'mstest'コマンドラインユーティリティは、すべてのクラスライブラリが現在の作業ディレクトリに存在することを期待しています。私は 'SpecBind' NuGetパッケージをインストールしました。これは、不足しているDLLファイル(SpecBind.CodedUI.dll)を私に渡しますが、ビルドディレクトリにコピーされません。私はあなたにいくつかの提案がない限り、これを掘り下げなければならないでしょう(私はこのプロジェクトのCodedUIテストを使用しています)。 –

+0

私はこれを答えとしてマークしています。なぜなら、私は別の問題、おそらく私のVisual Studioソリューションのセットアップのために頭を悩んでいるからです。ありがとう! –

+2

mstestの代わりにVstest.console.exeを使用してください。 Vstest.console.exeは自動的にすべてのナゲットパッケージと他のライブラリを読み込みます。たとえば、Vstest.console.exe mytests.dll – Mohamed

2

「Specrun.Specflow」という名前のナゲットパッケージがダウンロードされています。そして、あなたのapp.configを変更し、unitTestProvider name = "SpecRun"を設定すると、unitTestProvider name = "MSTest"または "NUnit"を削除できるようになります。App.configの変更を保存すると、Visual Studioは、 [はい]をクリックして、ソリューションをビルドします。テストファイルが再生成されました。 コマンドプロンプトでC:\ Users \\ Documents \ Visual Studio 2015 \ Projects \に移動し、runtests.cmdと入力すると、すべてのフィーチャーファイルが直接トリガーされます。

+2

Specrun.SpecflowはSpecflowの商品であり、ユーザーあたり150ドルの費用がかかります。この収入ストリームは、標準オープンソースランナーのいずれかで仕様フローを実行することがほとんどまたは全くサポートされていないように思われる。ランナーに支払われた金額は、CI環境にとって本当に役に立たず、裕福な企業でさえも組織的な障壁となります。これはもちろんあなたのせいではありませんが、私はあなたの提案に対する大きな注意点として言及すべきだと思いました。 – Amias

関連する問題