7

「specs」クラス ライブラリの app.config で次のように指定することで、(NUnit ではなく) MsTest フレームワークをターゲットにするように Specflow を構成しました。

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

<specFlow>
 <unitTestProvider name="MsTest.2010" />
</specFlow>

したがって、いったん配置すると、テスト フィクスチャが Specflow カスタム ツールによって正しく生成され、正しい TestClassAttribute() とメソッドなどを使用して作成されていることがわかります。

[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.3.3.0")]
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute()]
...

specs クラスはビルドされますが、vista 64 ボックスの Visual Studio 2010 内で [テスト] --> [実行] --> [ソリューション内のすべてのテスト] を使用してテストを実行できません。VS がこれらを実行する有効なテストとして認識しないのはなぜですか?

4

3 に答える 3

8

Dror HelperAlex Dugglebyに従って、次の行を .csproj ファイルに追加します。

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

FileAlignment 要素の後に追加し、プロジェクトをリロードします。これで MS Test プロジェクトになり、このプロジェクトのコンテキストで MS Test 機能を取得できます。ガイドの意味:

  • {3AC096D0-A1C2-E12C-1390-A8335801FDAB} - テスト プロジェクト
  • {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - C# クラス ライブラリ
于 2011-01-20T13:44:17.137 に答える
4

プロジェクトをTest Project単なるClass Library-ではなく、として再作成する必要がありました。NUnitとSpecFlowを使用して開発を開始したため、NUnit属性が装飾された仕様を保持するバニラクラスライブラリを作成しました。この既存のプロジェクトのapp.configを変更して、mstestフレームワークをポイントし、NUnitの使用を停止できると思いましたが、specflowのカスタムツールでスタブが正しく作成されたにもかかわらず、VS2010はテストを認識しませんでした。

だから...私はTest Project自分のソリューションに新しいものを追加し、すべてのスペックコードをその新しいプロジェクトに移動してから再コンパイルすると、ビオラ、VS2010がテストを認識します。.csprojファイルのXMLで探しているGUID、またはテストフレームワークを接続するように指示するものがあると確信していますが、私はそれほど掘り下げていませんでした。

これが誰かを助けることを願っています。

于 2010-08-12T17:55:25.780 に答える
-1

クラス ライブラリ プロジェクト テンプレートをテスト プロジェクトに変更するには、.csproj を変更して次の行を追加します。

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

最初のプロパティ グループ要素に:

<PropertyGroup>
    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
于 2012-11-13T11:18:28.203 に答える