Klasa DeploymentItemAttribute
Określ nazwę pliku lub katalogu, który należy wdrażać wraz z zestawów przed uruchomieniem testu.Dołącz ten atrybut do klasy testowej lub metody badawczej.Można użyć wielu wystąpień.Ten atrybut nie jest dziedziczona.
Hierarchia dziedziczenia
System.Object
System.Attribute
Microsoft.VisualStudio.TestTools.UnitTesting.DeploymentItemAttribute
Przestrzeń nazw: Microsoft.VisualStudio.TestTools.UnitTesting
Zestaw: Microsoft.VisualStudio.QualityTools.UnitTestFramework (w Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)
Składnia
'Deklaracja
<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
Typ DeploymentItemAttribute uwidacznia następujące elementy członkowskie.
Konstruktorzy
Nazwa | Opis | |
---|---|---|
DeploymentItemAttribute(String) | Określa element, aby zostać wdrożona uruchamia wykonanie testowe. | |
DeploymentItemAttribute(String, String) | Określa element, aby zostać wdrożona uruchamia wykonanie testowe. |
Początek
Właściwości
Nazwa | Opis | |
---|---|---|
OutputDirectory | Pobiera ścieżkę do katalogu, do którego zostanie skopiowany. | |
Path | Pobiera ścieżki pliku źródłowego lub folder do skopiowania. | |
TypeId | Po wdrożeniu w klasie pochodnej pobiera identyfikator unikatowy to Attribute. (Odziedziczone z Attribute). |
Początek
Metody
Nazwa | Opis | |
---|---|---|
Equals | Infrastruktura. Zwraca wartość, która wskazuje, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute). | |
GetHashCode | Zwraca kod skrótu dla tego wystąpienia. (Odziedziczone z Attribute). | |
GetType | Pobiera Type bieżącego wystąpienia. (Odziedziczone z Object). | |
IsDefaultAttribute | Gdy zastąpiony w klasie pochodnej, wskazuje, czy wartość to wystąpienie jest wartością domyślną dla klasy pochodnej. (Odziedziczone z Attribute). | |
Match | Gdy zastąpiony w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute). | |
ToString | Zwraca wartość typu ciąg, który reprezentuje bieżący obiekt. (Odziedziczone z Object). |
Początek
Jawne implementacje interfejsu
Nazwa | Opis | |
---|---|---|
_Attribute.GetIDsOfNames | Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłki. (Odziedziczone z Attribute). | |
_Attribute.GetTypeInfo | Pobiera informacje o typie dla obiektu, który można uzyskać informacji o typie dla interfejsu. (Odziedziczone z Attribute). | |
_Attribute.GetTypeInfoCount | Pobiera numer typu informacji interfejsów, że obiekt zawiera (0 lub 1). (Odziedziczone z Attribute). | |
_Attribute.Invoke | Zapewnia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone z Attribute). |
Początek
Uwagi
Visual Studio 2012uruchamia testy, uruchomić albo w folderze, w którym skonstruowaniu je lub w folderze oddzielnych wdrażania, który jest unikatowy dla badania.Jeśli folder wdrażania jest używany, badanym silniku tworzy folder wdrażania i skopiowanie do niego zestawów, zawierający kod testu, aplikacji i dowolnych zestawów aparatów, do których się odwołują.
Jednak niektóre testy wymagają dodatkowych plików, takich jak dane z badań, pliki konfiguracyjne, baz danych lub jawnie załadowanych zestawach.Aby udostępnić te pliki podczas badania, musisz określić, że powinny być skopiowane wraz z zestawów badawczych.W tym miejscu jest najlepszym sposobem wykonania tego zadania:
Skopiuj pliki do katalogu docelowego budować jako część procesu tworzenia.
Jeśli są one specyficzne dla projektu jedno z badań, należy je dołączyć jako pliki zawartości w programie Visual Studio test projektu.Zaznacz je w oknie Solution Explorer i ustaw Kopiuj, aby dane wyjściowe właściwość, aby Kopiuj jeśli nowszy.
W przeciwnym razie zdefiniować zadanie post-build do skopiowania plików do budowania katalogu wyjściowego.Na przykład:
xcopy /Y /S "$(SolutionDir)SharedFiles\*" "$(TargetDir)"
Otwórz okno właściwości projektu badania projektu.W języku C# projekt, otwórz Tworzenie zdarzenia strony.W projekcie języka Visual Basic, należy otworzyć skompilować strony i wybierz polecenie Tworzenie zdarzenia.Dodaj polecenie Kopiuj do Post-build zdarzenie pole.
Użycie DeploymentItemAttribute na metody badań lub klas test, aby określić pliki i foldery, które mają zostać skopiowane z danych wyjściowych katalogu do katalogu wdrażania.
Rozważ uruchomienie testy jednostkowe bezpośrednio w katalogu wyjściowego kompilacji, tak aby testowania działa szybciej.Jest to szczególnie przydatne, na serwerze kompilacji, po sprawdzeniu testów.Aby to zrobić, należy dodać .runsettings plik do rozwiązania, to <DeploymentEnabled>False</DeploymentEnabled>i wybierz plik w Test, Testuj ustawienia menu.Ten sam efekt pojawia się w każdy przebieg testu, w którym DeploymentItemAttribute nie jest używana w ogóle.
Jednak może nie chcesz tego robić, jeśli chcesz być w stanie sprawdzić plików danych, w wyniku uruchomienia nieudanej.
Nie można uniknąć za pomocą folder wdrażania, korzystając z .testsettings pliku, który jest wymagany do badania w sieci web i obciążenia, kodowane testy interfejsu użytkownika, a każde badanie, w którym wdrażania aplikacji na komputerach zdalnych.
W badaniu, uruchamianie wszystkie elementy w badaniach, które mają być uruchamiane są wdrażane przed rozpoczęciem każdego testu.
Aby uzyskać więcej informacji, zobacz Porady: wdrożenie plików na potrzeby testów.
DeploymentItemAttributema dwa parametry:
Ścieżka źródłowa elementu względem folderu danych wyjściowych kompilacji.Może to być plik lub folder.Aby uniknąć zależność od struktury projektu, przenieś go do katalogu wyjściowego budować jako część procesu tworzenia.Za pomocą atrybutu element wdrażania wdrożyć go stamtąd.
(Opcjonalnie) To ścieżka do katalogu docelowego musi być folderem, i to jest katalog wdrażania.Jeśli folder nie istnieje, zostanie on utworzony.Wartością domyślną jest katalog wdrażania.
Nie można zmienić nazwę pliku za pomocą DeploymentItem.
W poniższych przykładach pokazano sposób użycia z DeploymentItemAttribute:
[DeploymentItem("file1.xml")]
Kopiuje file1.xml z katalogu wyjściowego do katalogu wdrażania.[DeploymentItem(@"Testfiles\")]
Kopiuje wszystkie pliki i foldery w folderze Testfiles z folderu danych wyjściowych kompilacji, aby folder wdrażania.Podfoldery są replikowane w folderze wdrażania.[DeploymentItem("file2.xml", "DataFiles")]
Tworzy folder o nazwie plików danych w folderze wdrażania i kopiuje file2.xml z folderu danych wyjściowych kompilacji do plików danych.[!UWAGA]
Jeśli używasz drugi parametr, zawsze musi być ścieżka folderu, nigdy nie w pliku.Jeśli folder nie istnieje, zostanie on utworzony.Nie można zmienić nazwę pliku za pomocą DeploymentItem.
[DeploymentItem(@"Resources\file2.xml", "DataFiles")]
Tworzy folder o nazwie plików danych w folderze wdrażania, jeśli nie istnieje.Kopiuje file2.xml z folderu zasobów w folderze dane wyjściowe kompilacji do plików danych.Należy zauważyć, że folder zasoby nie są zduplikowane w folderze docelowym.[DeploymentItem(@"TestFiles\", "TestFiles")]
Kopiuje zawartość TestFiles do podfolderu folderu wdrażania.Podfoldery są replikowane na docelowym.[DeploymentItem(@"..\..\file1.xml")](Nie zalecane)
Kopiuje element z katalogu projektu.W tym przykładzie założono struktury typowego projektu, w którym katalog wyjściowy jest, na przykład w bin\Debug.Zamiast wpisywać struktury projektu w ten sposób, należy ustawić pliku Kopiuj, aby dane wyjściowe właściwość.Wdrażanie pliku z katalogu wyjściowego.
[DeploymentItem(@"C:\MyDataFiles\")]
Kopiuje zawartość folderu MyDataFiles do folderu wdrażania.(Jeśli używasz .testsettings pliku)[DeploymentItem("%myDir%\myFile.txt")]
Wdraża mójplik.txt pliku, jeśli taki plik znajduje się w katalogu, do którego %myDir% rozwiązuje problem.
Aby uzyskać więcej informacji na temat używania atrybutów, zobacz Rozszerzanie metadanych za pomocą atrybutów.
Przykłady
Kolejny test odczytuje pliki o nazwie "test*.xml".Aby udostępnić pliki w badaniu i do aplikacji badany, są identyfikowane za pomocą DeploymentItemAttribute.Metody badania sprawdzi, czy pliki znajdują się w katalogu instalacyjnym, przed przejściem do testowania aplikacji.
using System;
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DeploymentTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
// Copy files from build directory:
[DeploymentItem("test1.xml")]
[DeploymentItem("test2.xml", "Data")]
// Copy files from Resources subdirectory:
[DeploymentItem("Resources\\test3.xml")]
[DeploymentItem("Resources\\test4.xml", "Data")]
public void ConstructorTest()
{
// Verify that the files exist in the deployment directory
Assert.IsTrue(File.Exists("test1.xml"));
Assert.IsTrue(File.Exists("Data\\test2.xml"));
Assert.IsTrue(File.Exists("test3.xml"));
Assert.IsTrue(File.Exists("Data\\test4.xml"));
// Now test the application ...
}
}
}
Imports System
Imports System.IO
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Namespace DeploymentTest
<TestClass()> _
Public Class UnitTest1
<TestMethod()> _
<DeploymentItem("test1.xml")> _
<DeploymentItem("test2.xml", "Data")> _
<DeploymentItem("Resources\test3.xml")> _
<DeploymentItem("Resources\test4.xml", "Data")> _
Sub ConstructorTest()
Assert.IsTrue(File.Exists("test1.xml"))
Assert.IsTrue(File.Exists("Data\test2.xml"))
Assert.IsTrue(File.Exists("test3.xml"))
Assert.IsTrue(File.Exists("Data\test4.xml"))
' Now test the application ...
End Sub
End Class
End Namespace
Bezpieczeństwo wątku
Wszystkie publiczne static (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.
Zobacz też
Informacje
Przestrzeń nazw Microsoft.VisualStudio.TestTools.UnitTesting