Share via


汎用テストのトラブルシューティング

更新 : 2007 年 11 月

汎用テストを実行すると、汎用テストを 64 ビット プラットフォームで実行する場合にコード カバレッジ データの収集が動作しないことを通知するエラーが表示されます。このエラーを解消する方法については、「32 ビット制限の回避」セクションを参照してください。

32 ビット制限の回避

コード カバレッジのインストルメンテーションは 32 ビット モードでのみ動作し、64 ビット モードでは動作しません。これは、コード カバレッジ用にインストルメント化されたアセンブリの読み込みには 32 ビット モードしか使用できないからです。

ms404657.alert_note(ja-jp,VS.90).gifメモ :

コード カバレッジ データを収集しない場合は、単体テストを 64 ビット コンピュータで実行することに制限はありません。これは、クラス ライブラリを読み込むテスト エンジンである VSTestHost.exe が 32 ビット プロセスで実行されるためです。

汎用テストの場合、ラップされたアプリケーションは "Any CPU" に対してビルドされ、64 ビット コンピュータでは 64 ビット プロセスとして実行されます。この 64 ビット プロセスが 32 ビット アセンブリを読み込もうとすると、エラーが発生します。これは、次のいずれかの方法で解消できます。

製品コードがコンパイルされて作成されるバイナリ ファイルを汎用テストが直接ラップする場合は、次の方法を使用します。

  • ソリューション構成の x86 への変更

汎用テストと製品コードのバイナリ ファイルとの間にレイヤが存在する場合は、次のいずれかの方法を使用します。つまり、汎用テストが中間アプリケーションをテスト ハーネスとしてラップする場合です。テストする製品コードは、テスト ハーネスが実行します。

  • 製品コードのバイナリ ファイルを読み込むアプリケーションのインストルメント化

  • 製品コードのバイナリ ファイルを読み込むアプリケーションのビルド設定の変更

ソリューション構成の x86 への変更

ソリューション構成を "Any CPU" から "x86" に変更します。

ソリューション構成を変更するには

  1. ソリューションを右クリックし、[プロパティ] をクリックします。

    [ソリューション プロパティ ページ] ダイアログ ボックスが表示されます。

  2. [構成プロパティ] の [構成] をクリックします。

  3. [構成マネージャ] をクリックします。

    [構成マネージャ] ダイアログ ボックスが表示されます。

  4. [アクティブ ソリューション プラットフォーム] の [新規] をクリックします。

    [新しいソリューション プラットフォーム] ダイアログ ボックスが表示されます。

  5. [新しいプラットフォームを入力または選択してください] で [x86] をクリックします。

  6. [新しいソリューション プラットフォーム] ダイアログ ボックスで、[OK] をクリックします。

  7. 変更を保存するかどうかを確認するダイアログ ボックスが表示されたら、[はい] をクリックします。

  8. [構成マネージャ] ダイアログ ボックスの [アクティブ ソリューション プラットフォーム] で、[x86] が選択されていることを確認し、[閉じる] をクリックします。

  9. [ソリューション プロパティ ページ] ダイアログ ボックスの [OK] をクリックします。

製品コードのバイナリ ファイルを読み込むアプリケーションのインストルメント化

この手順は、汎用テストでラップする中間アプリケーション (テスト ハーネス) をインストルメント化する場合に使用します。テストするコードは、中間アプリケーションが実行します。これにより、アプリケーションは強制的に 32 ビット モードで実行されます。

ms404657.alert_note(ja-jp,VS.90).gifメモ :

この手順は、インストルメント化するファイルがシンボル ファイルを利用できる場合にのみ機能します。

インストルメンテーション対象の実行可能ファイルを指定するには

  1. Visual Studio で、汎用テストを含むテスト プロジェクトを開きます。

  2. ソリューション エクスプローラで、[ソリューション項目] フォルダを開きます。

  3. [ソリューション項目] フォルダで .testrunconfig ファイルをダブルクリックします。

  4. [テストの実行構成] ダイアログ ボックスが開きます。

  5. [コード カバレッジ] をクリックします。

  6. [インストルメント化する項目を選択する] で、製品コードのバイナリ ファイルを実行する中間アプリケーションを選択します。

    ms404657.alert_note(ja-jp,VS.90).gifメモ :

    中間アプリケーションのバイナリ ファイルが [インストルメント化する項目を選択する] に表示されない場合は、[アセンブリの追加] をクリックします。[インストルメント化するアセンブリの選択] ダイアログ ボックスで、ファイルを指定し、[開く] をクリックします。

  7. [適用] をクリックし、[閉じる] をクリックします。

製品コードのバイナリ ファイルを読み込むアプリケーションのビルド設定の変更

この手順は、汎用テストでラップする中間アプリケーション (テスト ハーネス) をインストルメント化する場合に使用します。テストするコードは、中間アプリケーションが実行します。

この手順では、中間アプリケーションの設定を変更し、x86 プラットフォーム用にビルドされるようにします。

ms404657.alert_note(ja-jp,VS.90).gifメモ :

この手順は、ラップされるアプリケーションがソリューションに含まれているプロジェクトからビルドされた場合にのみ機能します。

ラップされるアプリケーションのビルド設定を変更するには

  1. ソリューション エクスプローラで、中間アプリケーションのビルドに使用するプロジェクトを右クリックし、[プロパティ] をクリックします。

    プロジェクトのプロパティ ページが表示されます。

  2. [ビルド] タブをクリックします。

  3. プラットフォーム ターゲットとして [x86] を指定します。

  4. [ファイル] メニューの [選択したファイルを上書き保存] をクリックします。

参照

処理手順

方法 : 汎用テストを使用してコード カバレッジ データを収集する