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) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。