41

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

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

4

8 に答える 8

82

追加のツールや拡張機能を使用せずに 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 によって認識され、build-it テスト ランナーで実行できる MsTest テストが含まれます。

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

于 2010-06-14T15:37:58.717 に答える
10

SpecFlow はランナー自体を提供しません。
SpecFlow は、一般的な単体テスト フレームワークの 1 つのフィクスチャを生成します。SpecFlow 1.3 NUnit (デフォルト) では、MSTest と xUnit.net がサポートされています (App.config で設定)。

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

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

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

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

于 2010-06-07T06:49:04.827 に答える
6

この質問を更新するために、最新バージョンのspecflowで使用する必要があります(MsTest.2010を使用)

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

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

于 2012-02-05T00:27:10.980 に答える
4

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

于 2011-02-18T13:21:20.900 に答える
4

私を捕まえた何か。プロジェクト タイプがテスト プロジェクトであることを確認する必要がありました。プロジェクトをアンロードし、プロジェクト GUID を単体テスト プロジェクトの GUID に変更する必要がありました。これを行うと、プロジェクトの SpecFlow (およびその他の) テストが活気づきました

于 2012-02-28T13:31:33.567 に答える
3

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

于 2010-06-06T14:21:30.083 に答える
2

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

于 2011-11-16T18:21:04.453 に答える
0

また、Visual Studio 2008 および 2010 のオープン ソース NUnit テスト ランナー プラグインである Visual Nunit を試すこともできます

于 2012-01-19T16:09:12.707 に答える