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