Sdílet prostřednictvím


DeploymentItemAttribute – třída

Zadejte název souboru nebo adresáře, které by měly být nasazeny před spuštěním testu a sestavení.Připojte tento atribut test třídy nebo zkušební metody.Můžete použít více instancí.Tento atribut není zděděna.

Hierarchie dědičnosti

Object
  Attribute
    Microsoft.VisualStudio.TestTools.UnitTesting.DeploymentItemAttribute

Obor názvů:  Microsoft.VisualStudio.TestTools.UnitTesting
Sestavení:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (v Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Syntaxe

'Deklarace
<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 zveřejňuje následující členy.

Konstruktory

  Název Popis
Veřejná metoda DeploymentItemAttribute(String) Určuje položku, kterou chcete být nasazeny před spuštěním testu spustí.
Veřejná metoda DeploymentItemAttribute(String, String) Určuje položku, kterou chcete být nasazeny před spuštěním testu spustí.

Nahoru

Vlastnosti

  Název Popis
Veřejná vlastnost OutputDirectory Získá cestu adresáře, do kterého je položka zkopírována.
Veřejná vlastnost Path Získá cestu zdrojový soubor nebo složku, kterou chcete zkopírovat.
Veřejná vlastnost TypeId Po implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno z Attribute.)

Nahoru

Metody

  Název Popis
Veřejná metoda Equals Infrastruktura. Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno z Attribute.)
Veřejná metoda GetHashCode Vrátí kód hash této instance. (Zděděno z Attribute.)
Veřejná metoda GetType Získá Type aktuální instance. (Zděděno z Object.)
Veřejná metoda IsDefaultAttribute Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnota pro odvozené třídy. (Zděděno z Attribute.)
Veřejná metoda Match Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda tato instance se rovná zadaný objekt. (Zděděno z Attribute.)
Veřejná metoda ToString Vrátí řetězec, který představuje aktuální objekt. (Zděděno z Object.)

Nahoru

Explicitní implementace rozhraní

  Název Popis
Explicitní implementace rozhraníSoukromá metoda System#Runtime#InteropServices#_Attribute#GetIDsOfNames Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. (Zděděno z Attribute.)
Explicitní implementace rozhraníSoukromá metoda System#Runtime#InteropServices#_Attribute#GetTypeInfo Načte informace o typu objektu, který lze použít, chcete-li získat informace o typu rozhraní. (Zděděno z Attribute.)
Explicitní implementace rozhraníSoukromá metoda System#Runtime#InteropServices#_Attribute#GetTypeInfoCount Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). (Zděděno z Attribute.)
Explicitní implementace rozhraníSoukromá metoda System#Runtime#InteropServices#_Attribute#Invoke Poskytuje přístup k vlastnostem a metodám vystaveným objektem. (Zděděno z Attribute.)

Nahoru

Poznámky

Visual Studio 2012spuštění testů, které se buď ve složce, ve které máte vytvořenou je nebo v samostatné nasazení složku, která je jedinečná pro test spustit.Pokud je použita složka nasazení, zkoušený motor vytvoří složky pro nasazení a zkopíruje do něj sestavení obsahující kód test, aplikace a všechny sestavení, které odkazují.

Ale některé testy vyžadují další soubory, jako jsou údaje ze zkoušek, konfiguračních souborů, databází nebo explicitně načíst sestavení.Chcete-li zpřístupnit tyto soubory při zkoušce, musíte určit, by měly být zkopírovány a sestavení zkušební.Zde je nejlepší způsob, jak to provést:

  1. Zkopírujte soubory do cílového adresáře sestavení jako součást procesu sestavení.

    • Pokud jsou specifické pro projekt jedna zkouška, zahrnutí obsahu souborů v aplikaci Visual Studio testování projektu.V Průzkumníku řešení vyberte a nastavte kopie na výstup vlastnost Kopírovat jestliže je novější.

    • Jinak definici úlohy po sestavení ke kopírování souborů do adresáře výstupu sestavení.Příklad:

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

      Otevřete vlastnosti projektu testu projektu.V projektu jazyka C#, otevřete Události sestavení stránky.V projektu Visual Basic, otevřete kompilaci stránku a zvolte Události sestavení.Přidat příkaz Kopírovat události po sestavení pole.

  2. Použití DeploymentItemAttribute na zkušební metody nebo třídy test Chcete-li určit soubory a složky, které by měly být zkopírovány z adresáře výstupu sestavení do adresáře nasazení.

  3. Zvažte spuštění testů své jednotky přímo v adresáři výstupu sestavení tak, že zkoušení spustí rychleji.To je užitečné zejména na sestavení serveru, po kontrole v testy.Chcete-li to provést, přidejte .runsettings soubor do vašeho řešení, včetně <DeploymentEnabled>False</DeploymentEnabled>a vyberte soubor v Test, Test nastavení nabídky.Stejný účinek se vyskytuje v jakékoli zkoušky ve kterém DeploymentItemAttribute nepoužívá vůbec.

    Však může nechcete provést, pokud chcete zkontrolovat datové soubory po nezdařeného spuštění.

    Nelze zabránit použití složky pro nasazení, pokud používáte .testsettings soubor, který je vyžadován pro WWW a zatížení, testy, kódované UI testy a jakéhokoli testu, ve kterém nasazení aplikace do vzdálených počítačů.

Při spuštění testu jsou nasazeny všechny položky v testech, které mají být spuštěny před spuštěním jakéhokoli testu.

Další informace naleznete v tématu Postupy: Nasazení souborů pro testování.

DeploymentItemAttributemá dva parametry:

  • Zdrojová položka cesta se vztahuje k výstupní složku sestavení.Může být soubor nebo složku.Aby se zabránilo závislosti na struktuře vašeho projektu, položku přesunete do adresáře výstupu sestavení jako součást procesu sestavení.Pomocí atributu položky nasazení ji nasadit odsud.

  • (Volitelné) Cílový adresář musí být složka, a je relativní k adresáři nasazení.Pokud složka neexistuje, bude vytvořen.Výchozí hodnota je adresáře nasazení.

    DeploymentItem nelze změnit název souboru.

Následující příklady ukazují použití DeploymentItemAttribute:

  • [DeploymentItem("file1.xml")]
    Zkopíruje adresáře nasazení file1.xml z adresáře výstupu sestavení.

  • [DeploymentItem(@"Testfiles\")]
    Zkopíruje všechny soubory a složky ve složce Testfiles z výstupní složku sestavení do složky pro nasazení.Podsložky jsou replikovány ve složce nasazení.

  • [DeploymentItem("file2.xml", "DataFiles")]
    Vytvoří složku s názvem DataFiles ve složce nasazení a zkopíruje file2.xml z výstupní složku sestavení DataFiles.

    [!POZNÁMKA]

    Pokud druhý parametr musí být vždy cestu ke složce, nikdy do souboru.Pokud složka neexistuje, bude vytvořen.Název souboru nelze změnit pomocí DeploymentItem.

  • [DeploymentItem(@"Resources\file2.xml", "DataFiles")]
    Vytvoří složku s názvem DataFiles ve složce nasazení, pokud dosud neexistuje.Zkopíruje file2.xml z výstupní složku sestavení ve složce zdroje DataFiles.Všimněte si, že není na složku prostředky zkopírovány do cílové složky.

  • [DeploymentItem(@"TestFiles\", "TestFiles")]
    Zkopíruje obsah TestFiles do podsložky ve složce nasazení.Podsložky jsou replikovány podle místa určení.

  • [DeploymentItem(@"..\..\file1.xml")](Není doporučeno)
    Zkopíruje položky z adresáře projektu.Tento příklad předpokládá struktury typické projektu, ve kterém výstupní adresář je, například v bin\Debug.

    Nespoléhejte na strukturu projektu tímto způsobem nastavit v souboru kopie na výstup vlastnost.Nasazení souboru z adresáře výstupu sestavení.

  • [DeploymentItem(@"C:\MyDataFiles\")]
    Zkopíruje obsah složky MyDataFiles do složky nasazení.

  • (Používáte- .testsettings soubor)[DeploymentItem("%myDir%\myFile.txt")]
    Nasadí souboru myFile.txt, pokud tento soubor existuje v adresáři, do kterého %myDir% řeší.

Další informace o použití atributů naleznete v tématu Rozšiřování metadat pomocí atributů.

Příklady

Následující test načte soubory s názvem "test*.xml".Zpřístupnění souborů v testu a aplikaci zkoušené, jsou identifikovány pomocí DeploymentItemAttribute.Metodu test bude ověřovat soubory existují v adresáři nasazení před přechodem k testování aplikace.

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

Bezpečný přístup z více vláken

Všechny veřejné členy static (Shared v jazyce Visual Basic) tohoto typu jsou bezpečné pro přístup z více vláken. Není zaručeno, že členy instancí jsou bezpečné pro přístup z více vláken.

Viz také

Referenční dokumentace

Microsoft.VisualStudio.TestTools.UnitTesting – obor názvů