方法: .NET Framework 3.5 を対象とした単体テストを構成する

Visual Studio 2010 を使用する場合、テスト プロジェクトのターゲットとなる既定の .NET Framework のバージョンは .NET Framework 4 です。 さらに、テスト プロジェクトを Visual Studio 2008 からアップグレードする場合、既定では .NET Framework 4 をターゲットとするようにアップグレードされます。 プロジェクトのプロパティを編集して、プロジェクトを .NET Framework 3.5 に明示的に再ターゲットすることもできます。

ヒント

.NET Framework 3.5 を使用するようにテスト プロジェクトを再ターゲットするには、Visual Studio 2010 Service Pack 1 をインストールする必要があります。

Visual Studio 2010 Service Pack 1 を使用すると、.NET Framework 3.5 をターゲットとする単体テストに対して次のような基本サポートが有効になります。

  • 単体テスト プロジェクトを作成し、.NET Framework 3.5 をそのプロジェクトのターゲットにすることができます。

  • .NET Framework 3.5 をターゲットとする単体テストをローカル コンピューター上の Visual Studio 2010 Service Pack 1 から実行できます。

  • コマンド プロンプトで MSTest.exe を使用して、.NET Framework 3.5 をターゲットとする単体テストを実行できます。

  • 単体テストをビルドの一部としてビルド エージェントで実行できます。

SharePoint 2010 アプリケーションのテスト

上記の機能では、Visual Studio 2010 Service Pack 1 を使用して SharePoint 2010 アプリケーションの単体テストおよび統合テストを作成することもできます。 Visual Studio 2010 を使用した SharePoint 2010 アプリケーションの開発方法詳細情報:、「Visual Studio での SharePoint 開発」、「SharePoint ソリューションのビルドとデバッグ」、および「ALM 機能を使用した SharePoint コードの検証およびデバッグ」を参照してください。

制限事項

.NET Framework 3.5 を使用するようにテスト プロジェクトを再ターゲットする場合は、次の制限が適用されます。

  • .NET Framework 3.5 では、単体テストのみを含むテスト プロジェクトについてはマルチ ターゲットがサポートされます。 .NET Framework 3.5 では、コード化された UI テストやロード テストなど、その他の種類のテストはサポートされません。 単体テスト以外の種類のテストでは、再ターゲットすることはできません。

  • .NET Framework 3.5 テストの実行は、既定のホスト アダプターでのみサポートされます。 ASP.NET ホスト アダプターではサポートされていません。 ASP.NET 開発用サーバーのコンテキストで実行する必要のある ASP.NET アプリケーションは、.NET Framework 4 との互換性が必要です。

  • .NET Framework 3.5 のマルチ ターゲットをサポートするテストを実行する場合、データ収集のサポートは無効になります。 Visual Studio コマンド ライン ツールを使用することでコード カバレッジを実行できます。

  • .NET Framework 3.5 を使用する単体テストは、リモート コンピューターでは実行できません。

.NET Framework 3.5 への Visual Basic 単体テスト プロジェクトの再ターゲット

  1. 新しい Visual Basic 単体テスト プロジェクトを作成します。 [ファイル] メニューの [新規作成] を選択し、[プロジェクト] をクリックします。

    [新しいプロジェクト] ダイアログ ボックスが表示されます。

  2. [インストールされているテンプレート][Visual Basic] を展開します。 [テスト] を選択し、[テスト プロジェクト] テンプレートを選択します。

  3. [プロジェクト名] テキスト ボックスに Visual Basic テスト プロジェクトの名前を入力し、[OK] をクリックします。

  4. ソリューション エクスプローラーで、新しい Visual Basic テスト プロジェクトを右クリックし、[プロパティ] を選択します。

    Visual Basic テスト プロジェクトのプロパティが表示されます。

  5. 次の図に示すように、[コンパイル] タブをクリックし、[詳細コンパイル オプション] をクリックします。

    詳細コンパイル オプション

  6. 次の図の吹き出し B に示すように、[ターゲット フレームワーク (すべての構成)] ドロップダウン リストで、ターゲット フレームワークを [.NET Framework 4] から [.NET Framework 3.5] に変更します。

    [対象のフレームワーク] ドロップダウン リスト

    注意

    エラー メッセージが表示された場合は、メッセージに含まれたリンク先の指示に従うか、「.NET Framework 3.5 へのテスト プロジェクトの再ターゲットのための追加の手順」の手順を参照してください。

.NET Framework 3.5 への Visual C# 単体テスト プロジェクトの再ターゲット

  1. 新しい Visual C# 単体テスト プロジェクトを作成します。 [ファイル] メニューの [新規作成] を選択し、[プロジェクト] をクリックします。

    [新しいプロジェクト] ダイアログ ボックスが表示されます。

  2. [インストールされているテンプレート][Visual C#] を展開します。 [テスト] を選択し、[テスト プロジェクト] テンプレートを選択します。

  3. [プロジェクト名] テキスト ボックスに Visual C# テスト プロジェクトの名前を入力し、[OK] をクリックします。

  4. ソリューション エクスプローラーで、新しい Visual C# テスト プロジェクトを右クリックし、[プロパティ] を選択します。

    Visual C# テスト プロジェクトのプロパティが表示されます。

  5. 次の図に示すように、[アプリケーション] タブをクリックし、[ターゲット フレームワーク] ドロップダウン リストで、ターゲット フレームワークを [.NET Framework 4] から [.NET Framework 3.5] に変更します。

    [対象のフレームワーク] ドロップダウン リスト

    注意

    エラー メッセージが表示された場合は、メッセージに含まれたリンク先の指示に従うか、「.NET Framework 3.5 へのテスト プロジェクトの再ターゲットのための追加の手順」の手順を参照してください。

.NET Framework 3.5 へのマネージ C++/CLI 単体テスト プロジェクトの再ターゲット

  1. 新しい C++ 単体テスト プロジェクトを作成します。 [ファイル] メニューの [新規作成] を選択し、[プロジェクト] をクリックします。

    [新しいプロジェクト] ダイアログ ボックスが表示されます。

    ヒント

    Visual Studio 2008 を使用して作成した単体プロジェクトがある場合、Visual Studio 2010 Service Pack 1 を使用して .NET Framework 3.5 をターゲットにする C++/CLI 単体テスト プロジェクトを構築するには、Visual Studio 2008 でプロジェクトを使用する前に Visual Studio 2008 に Visual Studio 2008 Service Pack 1 をインストールする必要があります。 これは、.NET Framework Version 3.5 をターゲットにする場合の要件の 1 つです。 .NET Framework 3.5 再配布可能パッケージをインストールするだけでは、プロジェクトを構築できません。 Visual Studio 2010 の cl.exe のような Visual C++ ツールは、.NET Framework 4 しかターゲットにすることができません。 したがって、.NET Framework 3.5 をターゲットにするには、以前のバージョンのツールが必要です。 これらのツールは、.NET Framework ではなく Visual Studio と共にリリースされています。

  2. [インストールされているテンプレート][Visual C++] を展開します。 [テスト] を選択し、[テスト プロジェクト] テンプレートを選択します。

  3. [プロジェクト名] テキスト ボックスに Visual C++ テスト プロジェクトの名前を入力し、[OK] をクリックします。

  4. ソリューション エクスプローラーで、新しい Visual C++ テスト プロジェクトを右クリックし、[プロジェクトのアンロード] を選択します。

  5. ソリューション エクスプローラーで、アンロードした Visual C++ テスト プロジェクトを右クリックし、[<project name>.vcxproj の編集] を選択します。

    エディターで .vcxproj ファイルが開きます。

  6. "Globals" というラベルの付いた PropertyGroup で TargetFrameworkVersion を Version 3.5 に設定します。

    <PropertyGroup Label="Globals">
        <TargetName>DefaultTest</TargetName>
        <ProjectTypes>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}</ProjectTypes>
        <ProjectGUID>{CE16D77A-E364-4ACD-948B-1EB6218B0EA3}</ProjectGUID>
        <TargetFrameworkVersion>3.5</TargetFrameworkVersion>
        <Keyword>ManagedCProj</Keyword>
        <RootNamespace>CPP_Test</RootNamespace>
      </PropertyGroup>
    
  7. .vcxproj ファイルを保存して閉じます。

  8. ソリューション エクスプローラーで、新しい Visual C++ テスト プロジェクトを右クリックし、[プロジェクトの再読み込み] を選択します。

.NET Framework 3.5 へのテスト プロジェクトの再ターゲットのための追加の手順

Visual Studio 2010 に Service Pack 1 をインストールする前に devenv.exe.config ファイルを変更した場合は、.NET Framework 3.5 をターゲットにするために追加の手順が必要になります。 Service Pack 1 をインストールしても、変更されていることが検出された構成ファイルは上書きされません。

注意

Visual Studio アドオンまたはプラグインがインストールされている場合は、devenv.exe.config ファイルが変更されている可能性があります。

Service Pack 1 をインストールする前に devenv.exe.config ファイルが変更されており、ファイルが修正されていない場合、次の状況でエラー メッセージが表示されます。

  • Service Pack 1 がインストールされている Visual Studio 2010 を使用してテスト プロジェクトで .NET Framework 3.5 を再ターゲットしようとした場合。

  • 既に再ターゲットされているテスト プロジェクトを開こうとした場合。

この問題を解決するには、次の手順に従ってください。

欠落している XML エントリを構成ファイルに追加するには

  1. Visual Studio 2010 のすべてのインスタンスを閉じます。

  2. 管理者として Visual Studio 2010 のコマンド プロンプトを開きます。

  3. ディレクトリを "%programfiles%\MicrosoftVisual Studio 10.0\Common7\IDE" (32 ビットの Windows を使用している場合) または "%programfiles(x86)%\MicrosoftVisual Studio 10.0\Common7\IDE" (64 ビットの Windows を使用している場合) に変更します。

  4. devenv.exe.config ファイルを notepad.exe などのテキスト エディターで開きます。

  5. <assemblyBinding> ノードの下に次のエントリを追加します。

    <dependentAssembly>
    
            <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.UnitTestFramework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
    
            <bindingRedirect oldVersion="10.1.0.0" newVersion="10.0.0.0"/>
    
          </dependentAssembly>
    
          <dependentAssembly>
    
            <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
    
            <bindingRedirect oldVersion="10.1.0.0" newVersion="10.0.0.0"/>
    
          </dependentAssembly>
    
          <dependentAssembly>
    
            <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
    
            <bindingRedirect oldVersion="10.1.0.0" newVersion="10.0.0.0"/>
    
          </dependentAssembly>
    
          <dependentAssembly>
    
            <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Tip" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
    
            <bindingRedirect oldVersion="10.1.0.0" newVersion="10.0.0.0"/>
    
          </dependentAssembly>
    
  6. <configuration> ノードの下に次のエントリを追加します。

    <appSettings>
        <add key="TestProjectRetargetTo35Allowed" value="true" />
     </appSettings>
    
  7. devenv.exe.config ファイルを保存します。

  8. Visual Studio 2010 を再起動します。

    これで、テスト プロジェクトを .NET Framework 3.5 に再ターゲットできるようになります。

参照

概念

既存コードに対する単体テストの作成と実行

SharePoint ソリューションのビルドとデバッグ

その他の技術情報

Visual Studio での SharePoint 開発