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

Object
  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, aby uruchomić test rozpoczyna się.
Metoda publiczna DeploymentItemAttribute(String, String) Określa element, aby zostać wdrożona, aby uruchomić test rozpoczyna się.

Początek

Właściwości

  Nazwa Opis
Właściwość publiczna OutputDirectory Pobiera ścieżkę katalogu, do którego jest kopiowany element.
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 dla tego Attribute. (Odziedziczone z Attribute).

Początek

Metody

  Nazwa Opis
Metoda publiczna Equals Infrastruktura. Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi. (Odziedziczone z Attribute).
Metoda publiczna GetHashCode Zwraca kod skrótu dla tego wystąpienia. (Odziedziczone z Attribute).
Metoda publiczna GetType Gets the Type of the current instance. (Odziedziczone z Object).
Metoda publiczna IsDefaultAttribute Po zastąpieniu w klasie pochodnej, wskazuje, czy wartość to wystąpienie jest wartością domyślną dla klasy pochodnej. (Odziedziczone z Attribute).
Metoda publiczna Match Po zastąpieniu w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute).
Metoda publiczna ToString Returns a string that represents the current object. (Odziedziczone z Object).

Początek

Jawne implementacje interfejsu

  Nazwa Opis
Jawna implementacja interfejsuMetoda prywatna System#Runtime#InteropServices#_Attribute#GetIDsOfNames Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna System#Runtime#InteropServices#_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 System#Runtime#InteropServices#_Attribute#GetTypeInfoCount Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna System#Runtime#InteropServices#_Attribute#Invoke Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone z Attribute).

Początek

Uwagi

Visual Studio 2012uruchamia testy, albo w folderze, w którym skonstruowaniu je lub wdrażanie oddzielnego folderu, który jest unikatowy w teście uruchomione.Jeśli jest używany folder wdrażania, silnik badany tworzy folder wdrażania i skopiowanie do niego zestawów zawierających kod testu, aplikacji i dowolnych zestawów, do których się one odnoszą.

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, należy określić, że powinny one skopiowane razem z zestawów badawczych.W tym miejscu jest najlepszym sposobem, aby to zrobić:

  1. Skopiuj pliki do katalogu docelowego budować jako część procesu tworzenia.

    • Jeśli są specyficzne dla jednego badania projektu, należy je dołączyć jako pliki zawartości w programie Visual Studio test projektu.Zaznacz je w oknie Solution Explorer i ustaw kopię danych wyjściowych właściwość, aby Kopiuj jeśli nowszy.

    • W przeciwnym razie zdefiniować zadanie post-build Aby skopiować pliki do katalogu wyjściowego kompilacji.Na przykład:

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

      Otwórz okno właściwości projektu badania projektu.W języku C# projektu, otwórz Tworzenie zdarzenia strony.W projekcie programu Visual Basic, otwórz kompilacji strony i wybierz polecenie Tworzenie zdarzenia.Dodaj polecenie Kopiuj do Post-build zdarzenie pole.

  2. Użycie DeploymentItemAttribute na metody badania lub badania klas do określania plików i folderów, które katalog wyjściowy kompilacji powinny zostać skopiowane do katalogu wdrażania.

  3. Należy rozważyć uruchamianie testów jednostki bezpośrednio w katalogu wyjściowego kompilacji, tak, że badania działa szybciej.Jest to szczególnie przydatne na serwerze kompilacji, po sprawdzeniu testy.Aby to zrobić, Dodaj .runsettings plik do rozwiązania, obejmują <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żywany w ogóle.

    Jednak może wolisz nie to zrobić, jeśli chcesz mieć możliwość inspekcji plików danych po uruchomieniu nie powiodło się.

    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 testy wszystkie elementy w testach, 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 jest zależna od folderu danych wyjściowych kompilacji.Można go do pliku lub folderu.Aby uniknąć zależność od struktury projektu, przenieś go do katalogu wyjściowego budować jako część procesu tworzenia.Użyj atrybutu element wdrażania wdrożenie go stamtąd.

  • (Opcjonalnie) Ścieżki katalogu docelowego musi być folderem, i jest to katalog wdrażania.Jeśli folder nie istnieje, zostanie utworzony.Wartością domyślną jest katalog wdrażania.

    Nie można zmienić nazwy 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 kompilacji do katalogu wdrażania.

  • [DeploymentItem(@"Testfiles\")]
    Kopiuje wszystkie pliki i foldery w folderze Testfiles z folderu wyjściowego kompilacji 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 pliku.Jeśli folder nie istnieje, zostanie 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 taki nie istnieje.Kopiuje file2.xml z folderu zasoby 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 w lokalizacji docelowej.

  • [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 polegania na struktury projektu w ten sposób, ustaw plik kopię danych wyjściowych właściwość.Wdrażanie pliku z katalogu wyjściowego kompilacji.

  • [DeploymentItem(@"C:\MyDataFiles\")]
    Kopiuje zawartość folderu MyDataFiles do folderu wdrażania.

  • (Jeśli używasz .testsettings pliku)[DeploymentItem("%myDir%\myFile.txt")]
    Służy do rozmieszczania pliku mójplik.txt Jeśli taki plik znajduje się w katalogu, do którego %myDir% rozwiązuje problem.

Aby uzyskać więcej informacji o sposobach 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 oraz stosowania badanego, 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