インストルメンテーション フォルダの選択
更新 : 2007 年 11 月
バイナリに含まれているコードのテスト中にコード カバレッジ データを収集する必要がある場合、Visual Studio で最初にそのバイナリをインストルメント化する必要があります。インストルメンテーション処理により、コード カバレッジ データを生成するバイナリにコードが追加されます。コード カバレッジ用バイナリのインストルメント化の詳細については、「方法 : コード カバレッジ データを取得する」を参照してください。
インストルメンテーション処理では、それが行われる場所を制御できます。Visual Studio では、バイナリを次のいずれかの場所でインストルメント化できます。
埋め込み。埋め込みのインストルメンテーションを選択した場合、Visual Studio は、テストの実行前にバイナリが存在していたフォルダでバイナリをインストルメント化します。バイナリが作成中のアプリケーションの一部である場合、場所は Visual Studio がそのバイナリをビルドしたフォルダになります。
配置フォルダ。埋め込みのインストルメンテーションを選択しなかった場合、Visual Studio はバイナリを配置フォルダでインストルメント化します。配置フォルダは、テストの実行専用に作成されます。配置処理の詳細については、「テスト配置の概要」を参照してください。
使用するフォルダを決定するには、「インストルメンテーション フォルダの決定」を参照してください。また、フォルダの設定の詳細については、「インストルメンテーション フォルダの指定」を参照してください。
インストルメンテーション フォルダの決定
バイナリのインストルメント化に最も適したフォルダはどのように決定すればよいのでしょうか。埋め込みと配置フォルダのどちらを選択するかは、目的のバイナリに対するアクセス レベルと目的のバイナリの種類に応じて決定します。
可用性に制限があるバイナリ。次の表では、次のいずれかの状態にあるバイナリは可用性に制限があるバイナリとして示されています。
バイナリが複数の担当者によって共有される。共有バイナリの問題点は競合の可能性です。これは、複数の担当者によって同時に使用される可能性があるためです。たとえば、2 人の担当者がテストの実行を開始すると同時に、同じバイナリに対するコード カバレッジ データを同時に要求するような場合です。
バイナリが、ローカル コンピュータ上にではなく、ネットワーク共有上にある。
バイナリに対して読み取り専用アクセスしかない。
読み込み元が固定のバイナリ。テスト実行エンジンでは、所定の場所にある特定のバイナリだけを読み込むことができます。次の表では、このようなバイナリは読み込み元が固定のバイナリとして示されます。次の種類のファイルが該当します。
COM コンポーネント
[コントロール パネル] ページ
次の表は、適切なインストルメンテーション フォルダを選択するための指針です。考慮の必要がある特別な要因については、追加情報の欄を参照してください。
バイナリの読み込み元 |
バイナリの可用性 |
インストルメント化を行うフォルダ |
追加情報 |
固定 |
制限なし |
埋め込み |
(なし) |
非固定 |
制限あり |
配置フォルダ |
(なし) |
非固定 |
制限なし |
いずれのフォルダでも動作するが、配置フォルダを選択することを推奨 |
埋め込みのインストルメンテーションを選択した後で、テストの実行中にインストルメント化済みのバイナリを再ビルドした場合、テスト エンジンは再ビルドされたバイナリが新しいことを検知し、インストルメント化済みのバージョンを復元せず、実行レベルの警告を生成します。 |
固定 |
制限あり |
埋め込み。ただし、追加情報を参照 |
埋め込みのインストルメンテーションを選択しなかった場合、固定された場所にあるバイナリはインストルメント化されません。つまり、テストの実行が成功し、実行レベルの警告が生成されなかったとしても、コード カバレッジ データは収集されません。 問題回避の詳細については、「場所が固定で、可用性が制限されたバイナリ」を参照してください。 |
インストルメンテーション フォルダの指定
埋め込みおよび配置フォルダのどちらでインストルメント化を行うかは、次の 2 つの方法で選択できます。
選択を既定の設定にするには、Visual Studio の [ツール] メニューを使用して [オプション] ダイアログ ボックスを開きます。これは、[テストの実行] ページの [テスト ツール] ノードで設定します。
特定のテストの実行構成用のインストルメンテーション フォルダを指定することもできます。テストの実行構成エディタの [コード カバレッジ] ページで、[同じ場所でアセンブリをインストルメント化する] チェック ボックスをオンにします。詳細については、「方法 : テスト実行構成を指定する」を参照してください。
場所が固定で、可用性が制限されたバイナリ
テスト エンジンは、埋め込みでインストルメント化されるバイナリを変更できる必要があります。これを可能にするには、次の条件を確認します。
バイナリ ファイルに読み取り専用属性が設定されていないこと。目的のファイルに対する必要なアクセス許可があれば、この設定を修正できます。
テスト エンジンに、目的のバイナリ ファイルをインストルメント化するアクセス許可があること。これは、テストを実行するユーザーに、バイナリを変更する許可が必要であることを意味します。インストルメンテーションはホスト アプリケーションで実行されるので、このようなアクセス許可が必要となるアカウントは、devenv.exe または MSTest.exe を、ローカルまたはリモートに関係なく実行しているアカウントです。このようなアカウントは、Visual Studio を実行しているユーザー、MSTest.exe コマンドを実行したユーザー、またはテストを実行するビルドを開始したユーザーのアカウントになります。
バイナリ ファイルが別のプログラムによって使用またはロックされていないこと。これを解消するには、ロックしているプログラムを終了するか、そのプログラムによる実行が終了するまで待機します。
以上を確認しても、テスト エンジンがインストルメント化できないバイナリがまだある場合は、実行レベルの警告が生成されています。