Udostępnij za pośrednictwem


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
Metoda publiczna DeploymentItemAttribute(String) Określa element, aby zostać wdrożona uruchamia wykonanie testowe.
Metoda publiczna DeploymentItemAttribute(String, String) Określa element, aby zostać wdrożona uruchamia wykonanie testowe.

Początek

Właściwości

  Nazwa Opis
Właściwość publiczna OutputDirectory Pobiera ścieżkę do katalogu, do którego zostanie skopiowany.
Właściwość publiczna Path Pobiera ścieżki pliku źródłowego lub folder do skopiowania.
Właściwość publiczna TypeId Po wdrożeniu w klasie pochodnej pobiera identyfikator unikatowy to Attribute. (Odziedziczone z Attribute).

Początek

Metody

  Nazwa Opis
Metoda publiczna Equals Infrastruktura. Zwraca wartość, która wskazuje, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute).
Metoda publiczna GetHashCode Zwraca kod skrótu dla tego wystąpienia. (Odziedziczone z Attribute).
Metoda publiczna GetType Pobiera Type bieżącego wystąpienia. (Odziedziczone z Object).
Metoda publiczna IsDefaultAttribute Gdy zastąpiony w klasie pochodnej, wskazuje, czy wartość to wystąpienie jest wartością domyślną dla klasy pochodnej. (Odziedziczone z Attribute).
Metoda publiczna Match Gdy zastąpiony w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute).
Metoda publiczna ToString Zwraca wartość typu ciąg, który reprezentuje bieżący obiekt. (Odziedziczone z Object).

Początek

Jawne implementacje interfejsu

  Nazwa Opis
Jawna implementacja interfejsuMetoda prywatna _Attribute.GetIDsOfNames Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłki. (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna _Attribute.GetTypeInfo Pobiera informacje o typie dla obiektu, który można uzyskać informacji o typie dla interfejsu. (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna _Attribute.GetTypeInfoCount Pobiera numer typu informacji interfejsów, że obiekt zawiera (0 lub 1). (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna _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:

  1. 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.

  2. 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.

  3. 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