web-dev-qa-db-ja.com

Visual Studio 2010でSpecFlowテストを実行する方法

VS2010 Professionalの新規インストールでSpecFlowを実行しようとしています。新しいコンソールアプリケーションを作成し、NUnitおよびSpecFlowへの参照を追加しました。 SpecFlowフィーチャーを作成しました。デフォルトのテンプレートコードを持つ.featureが作成されます。

現在、このテストを実行しようとしていますが、方法がわかりません。プロジェクト(最上位)を右クリックしても、マウスのドロップダウンメニューに[テストの実行]オプションがありません。 SpecFlowは正しくインストールされませんでした。インストールに必要な参照やその他のツールが不足していますか?

40
testerboy

追加のツールや拡張機能なしでVisual Studio 2010から直接テストを実行できるようにする場合は、MsTestを単体テストフレームワークとして使用するようにSpecFlowを構成する必要があります。

これは、次のようにアプリケーション構成ファイルで実行できます。

  <configSections> 
    <section 
       name="specFlow" 
       type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/> 
  </configSections> 
  <specFlow> 
    <unitTestProvider name="MsTest" /> 
    <!--
        Use this if you're running VS2010
        <unitTestProvider name="MsTest.2010" />
    -->
  </specFlow> 

生成された分離コードファイルには、Visual Studioで認識可能なMsTestテストが含まれ、ビルドイットテストランナーで実行できます。

NUnitを使用する必要はまったくありません。

81
mfloryan

SpecFlowはランナー自体を提供しません。
SpecFlowは、共通のUnit-Test-Frameworksの1つのフィクスチャを生成します。 SpecFlow 1.3 NUnit(デフォルト)では、MSTestおよびxUnit.netがサポートされています(App.configで構成)。

フィクスチャーを実行するには、それらを実行できるランナーを使用する必要があります。 ReSharperは、VisualStudioに統合されているテストランナーにとって非常に優れたオプションですが、無料ではありません。 ReSharperは、参照しているソリューションエクスプローラーの「ユニットテストの実行」コンテキストメニューを提供します。

VisualStudio統合の代替手段はTestDriven.Netです(これもコンテキストメニューを提供します)。

NUnitの場合は、NUnit自体に付属のランナーも使用できます(GUIランナーとコマンドラインランナーがあります)。
MSTestの場合、テストを実行するためにネイティブのVisualStudio統合を使用できます(ただし、これは少し不格好です)。
xUnit.netにもランナーが付属していますが、私はそれらに詳しくありません。

さらに、MSBuildタスクを使用してフィクスチャーを実行できます...

10
jbandi

この質問を更新するために、使用するSpecflowの最新バージョンで(MsTest.2010を使用)

<configSections> 
    <section 
       name="specFlow" 
       type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/> 
  </configSections> 
  <specFlow> 
    <unitTestProvider name="MsTest.2010" /> 
  </specFlow> 

SpecUnitを誤ってNUnit を使用して参照してください

6
Not loved

私を引き付けた何か。プロジェクトタイプがテストプロジェクトであることを確認する必要がありました。プロジェクトをアンロードして、プロジェクトを変更する必要がありましたGUID=ユニットテストプロジェクトのプロジェクトに変更しました。これを実行すると、プロジェクトのSpecFlow(およびその他の)テストがすぐに実行されました

4
pkr2000

NUnitでSpecFlow機能を自動的に実行してHTMLレポートを生成するための外部ツールとしてバッチファイルを使用する方法に関するブログ投稿を作成しました。参照: http://watirmelon.com/2011/02/18/c-sharp-atdd-on-a-shoestring/

4
Alister Scott

Specflowテストは、外部から呼び出す必要があるNUnit(GUI)を使用して実行されます。または、Visual Studio内からのテストの実行をサポートするためにTestDriven.netまたはResharperをインストールできます。

3
testerboy

SpecflowをVS2010で使用する方法を示すビデオを作成しました here

2
CamronBute

Visual Studio 2008および2010へのオープンソースのNUnitテストランナープラグインであるVisual Nunitを試すこともできます。NuGetを使用して取得します。詳細については、 http://www.bubblecloud.org/visualnunit を参照してください。

0
surya