DeploymentItemAttribute クラス

ファイルやディレクトリなどの配置項目をテスト配置ごとに指定するために使用されます。 このクラスは継承できません。

継承階層

System.Object
  System.Attribute
    Microsoft.VisualStudio.TestTools.UnitTesting.DeploymentItemAttribute

名前空間:  Microsoft.VisualStudio.TestTools.UnitTesting
アセンブリ:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 内)

構文

'宣言
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Method, AllowMultiple := True)> _
Public NotInheritable Class DeploymentItemAttribute _
    Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple = true)]
public sealed class DeploymentItemAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Method, AllowMultiple = true)]
public ref class DeploymentItemAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple = true)>]
type DeploymentItemAttribute =  
    class
        inherit Attribute
    end
public final class DeploymentItemAttribute extends Attribute

DeploymentItemAttribute 型で公開されるメンバーは以下のとおりです。

コンストラクター

  名前 説明
パブリック メソッド DeploymentItemAttribute(String) DeploymentItemAttribute クラスの新しいインスタンスを初期化します。このコンストラクターで作成されるオブジェクトは、配置項目または配置ディレクトリのパスで初期化されます。
パブリック メソッド DeploymentItemAttribute(String, String) DeploymentItemAttribute クラスの新しいインスタンスを初期化します。このコンストラクターで作成されるオブジェクトは、配置項目および出力ディレクトリのパスで初期化されます。

このページのトップへ

プロパティ

  名前 説明
パブリック プロパティ OutputDirectory 出力ディレクトリのパスを表す値を取得します。
パブリック プロパティ Path 配置項目のパスを表す値を取得します。
パブリック プロパティ TypeId 派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。 (Attribute から継承されます。)

このページのトップへ

メソッド

  名前 説明
パブリック メソッド Equals インフラストラクチャ。 このインスタンスが、指定したオブジェクトに等しいかどうかを示す値を返します。 (Attribute から継承されます。)
プロテクト メソッド Finalize オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッド GetHashCode 対象のインスタンスのハッシュ コードを返します。 (Attribute から継承されます。)
パブリック メソッド GetType 現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド IsDefaultAttribute 派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラスの既定値かどうかを示します。 (Attribute から継承されます。)
パブリック メソッド Match 派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (Attribute から継承されます。)
プロテクト メソッド MemberwiseClone 現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッド ToString 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)

このページのトップへ

明示的インターフェイスの実装

  名前 説明
明示的なインターフェイス実装プライベート メソッド _Attribute.GetIDsOfNames 名前のセットを対応するディスパッチ識別子のセットにマッピングします。 (Attribute から継承されます。)
明示的なインターフェイス実装プライベート メソッド _Attribute.GetTypeInfo オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。 (Attribute から継承されます。)
明示的なインターフェイス実装プライベート メソッド _Attribute.GetTypeInfoCount オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。 (Attribute から継承されます。)
明示的なインターフェイス実装プライベート メソッド _Attribute.Invoke オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。 (Attribute から継承されます。)

このページのトップへ

解説

テスト設定に応じて、Microsoft Visual Studio 2010 はテスト設定を作成したフォルダー、または別の「配置」フォルダーでテストを実行します。 テストの設定の詳細については、「Visual Studio から自動テストを実行するためのテストの設定の作成」を参照してください。

ここでは、ビルドされたアセンブリを格納するフォルダーとは異なるフォルダーで Microsoft Visual Studio 2010 がテストを実行する場合について説明します。

この方法でテストを実行する際、そのテストの実行に固有のテスト配置フォルダー内に、テスト アセンブリ、テスト対象コード アセンブリ、および配置項目が配置されます。 この属性は、実行するために配置されたテストによって使用されるファイル、およびそのファイルを格納するディレクトリを識別します。 テスト エンジンは、各配置項目のコピーを作成し、OutputDirectory で指定したディレクトリまたは既定のディレクトリに基づいて、テスト配置ディレクトリにコピーを配置します。

この属性はテスト メソッドまたはテスト クラスに対して指定できます。 ただし、この属性は派生クラスによって継承されません。

複数の項目を指定するために、この属性のインスタンスを複数配置することもできます。 項目のパスには、絶対パスまたは相対パスを使用できます。 相対パスは、プロジェクト パスに相対的なパスです。

DeploymentItemAttribute のさまざまな使用法を次の例に示します。

  • [DeploymentItem("file1.xml")]   プロジェクト パスに存在する file1.xml という名前の項目を配置します。 このファイルは、配置ルート ディレクトリに配置されます。

  • [DeploymentItem("file2.xml", "DataFiles")]   プロジェクト パスに存在する file2.xml という名前の項目を配置します。 このファイルは、配置ルート ディレクトリの DataFiles サブディレクトリに配置されます。

  • [DeploymentItem("C:\\MyDataFiles\\")]   MyDataFiles ディレクトリ内にあるすべての項目およびディレクトリを配置します。 配置ディレクトリの下に MyDataFiles ディレクトリは作成されません。 MyDataFiles 内のすべてのファイルおよびディレクトリは配置ルート ディレクトリに配置されます。 MyDataFiles のディレクトリ構造全体をコピーするには、出力ディレクトリとして MyDataFiles を指定する必要があります。

  • [DeploymentItem("%myDir%\myFile.txt")]   %myDir% の解決後のディレクトリ内に myFile.txt ファイルが存在する場合、このファイルを配置します。

属性の使用方法の詳細については、「属性を使用したメタデータの拡張」を参照してください。

次のクラスは、テスト メソッドで使用されるファイルを作成します。

using System;
using System.IO;

namespace CarMaker
{
    public class Car
    {
        private static string make = "myMake";
        private static string model = "myModel";

        public static void CarInfo()
        {
            using (StreamWriter sw = new StreamWriter("testFile1.txt"))
            {
                sw.WriteLine(make);
                sw.WriteLine(model);
            }
        }
    }
}
Imports System
Imports System.IO

Namespace CarMaker
    Public Class Car

        Private Shared make As String = "myMake"
        Private Shared model As String = "myModel"

        Public Shared Sub CarInfo()
            Dim sw As New StreamWriter("testFile1.txt")
            Try
                sw.WriteLine(make)
                sw.WriteLine(model)
            Finally
                sw.Close()
            End Try
        End Sub
    End Class
End Namespace

次のテスト クラスは、"testFile1.txt" という名前のファイルを作成する Car クラスをインスタンス化するテスト メソッドを含んでいます。 このファイルは、DeploymentItemAttribute の指定に従って配置されます。 次に、テスト メソッドは、このファイルがテスト アセンブリと同じディレクトリに存在するかどうかをテストします。

using System;
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using CarMaker;

namespace DeploymentTest
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod()]
        [DeploymentItem("testFile1.txt")]
        public void ConstructorTest()
        {
            // Create the file to deploy
            Car.CarInfo();
            string file = "testFile1.txt";
            // Check if the created file exists in the deployment directory
            Assert.IsTrue(File.Exists(file), "deployment failed: " + file +
                " did not get deployed");
        }
    }
}
Imports System
Imports System.IO
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Imports MyVBProject.CarMaker

Namespace DeploymentTest
    <TestClass()> _
    Public Class UnitTest1
        <TestMethod()> _
        <DeploymentItem("testFile1.txt")> _
        Sub ConstructorTest()
            Car.CarInfo()
            Dim file As String = "testFile1.txt"
            Assert.IsTrue(IO.File.Exists(file), "deployment failed: " + file + _
                " did not get deployed")
        End Sub
    End Class
End Namespace

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

参照

参照

Microsoft.VisualStudio.TestTools.UnitTesting 名前空間