次の方法で共有


方法: テスト用のファイルを配置する

テストを実行する前に、テストとアプリケーションは実行できる位置に参照する他のアセンブリとともにコピーする必要があります。テストは、テスト データ、構成ファイル、データベース、および明示的に読み込まれたアセンブリなど、追加のファイルが必要です。これらの追加のファイルをテストに使用できるようにするには、配置されるように指定する必要があります。

実行はいずれか。

Visual Studio 2012 の場所でテストを実行する場合:

操作方法は、ローカル テストのテスト ファイルを配置できますか。

最適な方法を次に示します。:

  1. ビルド プロセスの一部としてビルド ターゲット ディレクトリにファイルをコピーします。

    • これらは 1 個のテスト プロジェクトに固有の、Visual Studio のテスト プロジェクトにコンテンツ ファイルとして追加します。ソリューション エクスプローラーで、を選択し、[新しい場合はコピーする][Copy to Output] のプロパティを設定します。

    • それ以外の場合、ビルド出力ディレクトリにファイルをコピー ビルド後のタスクを定義します。次に例を示します。

      xcopy /Y /S "$(SolutionDir)SharedFiles\*" "$(TargetDir)"
      

      テスト プロジェクトのプロパティを開きます。、C のプロジェクトでは、[ビルド イベント] のページを開きます。Visual Basic プロジェクトでは、[コンパイル] のページを開き、[ビルド イベント] を選択します。[ビルド後のイベント] のフィールドにコピー コマンドを追加します。

  2. ビルド出力ディレクトリから配置のディレクトリにコピーする必要があるフォルダーとファイルを指定するには、テスト メソッドまたはテスト クラスの DeploymentItemAttribute を使用します。

    [TestClass]
    class TestClass1
    {
      [TestMethod]
      [DeploymentItem("source", "targetFolder")]
      public void Test1()
      {
        string testData = System.IO.File.ReadAllText(@"targetFolder\source");
        ...
    } }
    
    <TestClass()> _
    Public Class UnitTest1
        <TestMethod()> _
        <DeploymentItem("source", "targetFolder")> _
        Sub TestMethod1()
            Dim testData As String = _
                System.IO.File.ReadAllText(@"targetFolder\source")
        ...
        End Sub
    End Class
    
    • [ソース] は、コピーするファイルまたはディレクトリです。パスは、ビルドの出力ディレクトリに対して絶対位置、またはです。

    • targetFolder は省略可能です。ソース ファイルまたはディレクトリの内容がコピーされるのは、ディレクトリです。パスは、配置のディレクトリに対して絶対位置、またはです。既定値は "あります。"、配置ディレクトリ。

      [!メモ]

      targetFolder は、ディレクトリ、は常にファイル パスではありません。DeploymentItem を使用してファイル名を変更できません。

    ただし、テスト メソッドまたはテスト クラスに適用属性を使用すると、同様に何度も。

    実行する一連のテストを選択すると DeploymentItem 属性で指定されたすべての項目は前にテストの実行を開始します。

  3. ビルドで単体テストを直接実行するディレクトリを、テストより迅速に出力するからです。これは、テストをチェックインすると、ビルド サーバーで特に役立ちます。

    これを行うには、[.runsettings] ファイルをソリューションに追加し、<DeploymentEnabled>False</DeploymentEnabled>を含むファイル [テスト] に選択するには、メニューのを [テストの設定]。同じ効果を DeploymentItemAttribute がまったく使用されていない任意のテストの実行で実行されます。

    ただし、Web、ロード テスト、コードされた UI テスト、.testsettings ファイルを使用して配置フォルダーの使用を避けることができないため、必要な、リモート コンピューターにアプリケーションを配置するテスト。

My は、.testsettings ファイルを使用する必要があるか。

Express 単体テストの .testsettings ファイルは必要ではありません。.testsettings ファイルを必要としない場合は、1 を使用しないでください。これは、単体テストの実行時間がサードパーティ製のテスト フレームワークと互換性がありません。配置の他の方法を検討してください。

これらのいずれかに当てはまる場合は .testsettings ファイルが必要です:

.testsettings ファイルを使用すると、アプリケーションとテスト アセンブリは配置フォルダーにコピーします。

.testsettings エディターの [配置] のページでデータ ファイルとディレクトリを指定できます。また、各テストの実行前の配置フォルダーにコピーされます。このページで指定された項目のパスは、ソリューションのディレクトリに対しては常に、アプリケーションおよびテスト アセンブリの水平方向の配置フォルダーに配置されます。

絶対パスを使用するか、別のターゲット ディレクトリを指定し、XML エディターを使用して .testsettings ファイルを開き、これに似たフラグメントを挿入する場合:

<Deployment>
  <DeploymentItem filename="C:\MyTestData\TestData.mdb"
        outputDirectory="D:\TestDB\" />
</Deployment>

outputDirectory は、絶対または配置のディレクトリを基準です。

別の配置フォルダーが使用されているか。

Visual Studio を使用してテストを実行すると、配置フォルダーはソリューション フォルダーにある TestResults の下に作成されます。

別の配置フォルダーは、テストの実行のテスト メソッドまたはクラスのいずれかに DeploymentItem 属性がある場合、または .testsettings ファイルを使用する場合にも使用されます。

配置フォルダーが使用されている場合、テストを実行する前に、次のファイルとフォルダーが配置フォルダーにコピーします:

  • テスト アセンブリ ファイル

  • すべての依存アセンブリ

  • DeploymentItemAttribute のを使用して、.testsettings ファイルで、明示的に指定したディレクトリとファイル

ローカル テスト実行用の配置フォルダー

テストのローカル配置フォルダー

ファイルは、配置され、どの順序でか。

テストの実行で、配置するファイルはすべて、テストの開始前にコピーします。テストの実行は、コマンドまたはスケジュールされたイベントによって開始されたテストのバッチです。これは、特定のテスト メソッド用に配置されるデータ ファイルを指定する場合、同じ実行で実行されるそのほかのすべてのテストに使用できることを意味します。

次の項目は表示されている順序でコピーします。これらの名前が同じ場合、コピー先以降のオーバーライドにコピーされた項目。

  1. DeploymentItemAttributeによって指定される項目

  2. 依存関係。たとえば、アプリケーション構成ファイル、および依存アセンブリ。

  3. 1 を使用している場合 .testsettingsファイルで指定された項目。

  4. インストルメント化されたバイナリ。たとえば、コード カバレッジまたは IntelliTrace を有効にするには、インストルメント化されたアセンブリ。

    埋め込みインストルメンテーションを使用している場合、バイナリは最初にインストルメント化され、次に配置ディレクトリにコピーされます。それ以外の場合は、最初にコピーされ、次にインストルメント化されます。埋め込みインストルメンテーションは、ローカルで実行されるテストの既定の設定です。

  5. テストを構成するファイルまたは複数のファイル。この中には、単体テストのテスト アセンブリ、手動テストのテキスト ファイルや .mht ファイル、汎用テストなどその他の種類のテストのその他の種類のファイルなどが含まれます。

TestResults のディレクトリに何があるか。

  • テスト実行フォルダー。TestResults が起動したテストの実行の 1 種類のフォルダーが含まれています。この名前は、作成された時間が含まれます。

    セットアップを指定し、.testsettings の後にスクリプト ファイルと、テスト実行フォルダーは、スクリプトが含まれています。

  • 。各テスト実行フォルダーには、Out というフォルダーが含まれます。Out フォルダーは、テストの実行が開始するときにアセンブリおよびそのほかの配置のファイルがコピーされる実際の配置フォルダーです。

  • 。コード カバレッジ結果およびそのほかの特定のテスト結果は、という名前のフォルダーに格納されます。

参照

関連項目

DeploymentItemAttribute

概念

アセンブリのインストルメント化と再署名

その他の技術情報

Visual Studio のテストにおけるテスト設定の指定