次の方法で共有


Visual Studio 2010 からの単体テストのアップグレード

Visual Studio 2012 は Visual Studio 2010 SP1 のテスト プロジェクトにテスト プロジェクトの互換性が含まれます。たとえば、Visual Studio 2010 SP1 で作成したテスト プロジェクトにアップグレードせずに Visual Studio 2012 を使用して開くことができます。したがって、チームは同じテスト プロジェクトを使用するには Visual Studio 2010 SP1 と Visual Studio 2012 の両方を使用できます。詳細については、「Upgrading tests from Visual Studio 2010」を参照してください。

Visual Studio 2012 は、単体テストのいくつかの変更が発生します。これらの変更については、Visual Studio の以前のバージョンと Visual Studio 2012間に互換性の問題を理解することが重要です。単体テストの変更時に、重要な変更は、Visual Studio 2012 が複数のテスト プロジェクト テンプレートが含まれることです単体テスト プロジェクトのテンプレートが。新しい単体テストは、新しい単体テスト プロジェクトのテンプレートに追加されます。単体テストは、コード化された UI テストのプロジェクト テンプレートと呼ばれる別の新しいテスト プロジェクト テンプレートに含めることができます。新しいテスト プロジェクトのテンプレートの詳細については、旧バージョンの Visual Studio からのテストのアップグレードを参照してください。新しい単体テスト プロジェクトが、テストの設定ファイルは既定では含まれません。テストの設定を除外して、単体テストのパフォーマンスが向上します。互換性のために、まだ作成した既存のテスト プロジェクトを使用して、Visual Studio 2010 を使用します。ただし、テストの設定ファイルの特定の必要がない限りテスト プロジェクトとパフォーマンス上の理由に関連付けられているテストの設定ファイルを削除することをお勧めします。テストの設定を保持するには、たとえば分散環境で単体テスト、または、特定の診断データを収集する必要がある場合は、ファイルを選択する場合があります。新しい単体テスト プロジェクト テンプレートを使用して、同様のニーズ、またはコード化された UI テスト プロジェクトのテンプレートがある場合は、手動でテスト設定ファイルは同様に追加できます。

[!メモ]

Visual Studio 2010、SP1 のテスト プロジェクト内の既存の単体テストは Visual Studio 2010 SP1 と Visual Studio 2012の間で動作します。変更は、単体テストを含む Visual Studio 2010 のテスト プロジェクトが Visual Studio 2012で開く、またはその逆も同じでない場合にテスト プロジェクト ファイル。

Caution メモ注意

Visual Studio 2010 は、ターゲット Visual Studio 2012で作成される 11.0 のツールセットによる.のプロジェクトを開くことができません (プロジェクト)。この制限は、すべての C++/CLI のプロジェクトだけ C++/CLI 単体テスト プロジェクトではなくに適用されます。

[!メモ]

コマンド ラインから vstest.console.exe を使用して新しい単体テストを実行できます。vstest.console.exe の使用方法の詳細については、VSTest.Console.exe コマンド ライン オプション"を参照するか、ヘルプ スイッチを使用してコマンドを実行する: vstest.console.exe /?。MStest.exe を使用して、既存の単体テストの実行を継続できます。詳細については、「方法: MSTest を使用してコマンド ラインから自動テストを実行する」および「MSTest.exe コマンド ライン オプション」を参照してください。

もう一つの重要な変更は、新しいテストのエクスプローラーです。Visual Studio 2012では、Visual Studio の以前のバージョンからについて理解する可能性のあるテストのウィンドウには、[テスト ビュー]ウィンドウなど、推奨されていません。テストのエクスプローラーは、ソフトウェアの開発手法の単体テストを組み込むチームの開発者とサポートを実現するように設計されています。詳細については、「テスト エクスプローラーを使用した単体テストの実行」を参照してください。

Visual Studio 2010 SP1 と Visual Studio 2012 の間の互換性の問題

Visual Studio 2010 SP1 と Visual Studio 2012中に単体テストを移行するときに認識を持つ:懸案事項を次に示します。

単体テストの機能

懸案事項

解決方法

テスト リスト (.vsmdi ファイル) は Visual Studio 2012では推奨されていません。

は新しいテスト リスト (.vsmdi ファイル) または Visual Studio から実行のテスト リストを作成できません。

ヒントヒント
テスト カテゴリは、旧バージョンの Microsoft Visual Studio のテスト リスト機能よりも高い柔軟性を備えています。テスト カテゴリと論理演算子を組み合わせて使用すると、複数のカテゴリのテストを同時に実行したり、実行するテストを複数のカテゴリに属するテストに限定したりすることができます。また、テスト メソッドを作成するときにテスト カテゴリの追加が容易になり、テスト メソッドの作成後にテスト リストを保守する必要がありません。テスト カテゴリを使用すれば、テスト リストを保守する <solution name>.vsmdi ファイルをチェック アウトやチェックインする必要がありません。詳細については、「テスト カテゴリの定義によるテストのグループ化」を参照してください。

プライベート アクセサーは Visual Studio 2012では推奨されていません。

以前のバージョンの Visual Studio では、アプリケーション プログラミング インターフェイス (API) を指定し、さらに、テストで呼び出すことができるパブリック同等の API、製品の内部 API の呼び出しを作成するには、publicize を使用できます。その後、スタブとして作成されたテストのスタブを作成し、コード スニペットの内部を生成するためにコード生成を使用できます。

は、プライベート アクセサーを作成できません。

  • Visual Studio 2010 のテスト プロジェクトは Visual Studio 2012でコンパイルされて動作します。ビルドの警告は出力が含まれています。

  • まだ内部 API をテストする必要がある場合は、これらのオプションがあります:

    • コードの内部およびプライベート API にアクセスを簡単に PrivateObject のクラスを使用します。これは Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll のアセンブリにあります。

    • 内部、またはプライベート API にアクセスするには、コードから反射できるリフレクションのフレームワークを作成します。

    • 、アクセスしようとしているコードが、内部 InternalsVisibleToAttribute を使用して、API にアクセスする可能性がある場合は、テスト コードは内部 API にアクセスできることができます。

テスト影響は削除されます

テストの実行の共有はエクスプローラーに TRX のログを通じて発生します。

まだコマンド ラインから TRX のログを取得し、チーム ビルドできます。

ネイティブ C++ 単体テストでコード カバレッジ

C ++.の単体テストが失敗し、コード カバレッジを有効にすると、エラーのスタック トレースはありません。

回避策は C++ 単体テストのコード カバレッジを使用せずに実行し、問題を識別するには呼び出し履歴を取得します。

参照

概念

Visual Studio 2012 の互換性

単体テストを使用したコードの検証

旧バージョンの Visual Studio からのテストのアップグレード

Visual Studio 2010 からのコード化された UI テストのアップグレード