Sdílet prostřednictvím


DeploymentItemAttribute – třída

Zadejte název souboru nebo adresáře, který by měla být zavedena společně sestavení před spuštěním služby.Tento atribut k testování třídy nebo zkušební metody.Můžete použít více instancí.Tento atribut není zděděna.

Hierarchie dědičnosti

System.Object
  System.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 k adresáři, 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á tento jedinečný identifikátor Attribute. (Zděděno z Attribute.)

Nahoru

Metody

  Název Popis
Veřejná metoda Equals Infrastruktura. Vrátí hodnotu, která označuje, zda je tato instance rovna zadaný objekt. (Zděděno z Attribute.)
Veřejná metoda GetHashCode Vrátí kód hash pro tuto instanci. (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řepsat v odvozené třídě, označuje, zda je hodnota této instanci výchozí hodnotu 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 _Attribute.GetIDsOfNames Mapuje sadu názvů odpovídající sadu identifikátorů odeslání. (Zděděno z Attribute.)
Explicitní implementace rozhraníSoukromá metoda _Attribute.GetTypeInfo Načte informace o typu objektu, který lze získat informace o rozhraní typu. (Zděděno z Attribute.)
Explicitní implementace rozhraníSoukromá metoda _Attribute.GetTypeInfoCount Vyhledá číslo rozhraní typu informace, že objekt obsahuje (0 nebo 1). (Zděděno z Attribute.)
Explicitní implementace rozhraníSoukromá metoda _Attribute.Invoke Poskytuje přístup k vlastnostem a metodám prostřednictvím objektu. (Zděděno z Attribute.)

Nahoru

Poznámky

Visual Studio 2012spuštění testů, které buď ve složce, ve které máte vytvořenou jejich nebo ve složce samostatné nasazení, 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í sestavení obsahující kód test, aplikace a jakýchkoliv 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čtených sestaveních.Chcete-li tyto soubory zpřístupnit v průběhu zkoušky, musíte určit, by měly být zkopírovány společně s sestavení test.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 Kopírovat do výstupu vlastnost Kopírovat jestliže je novější.

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

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

      Otevřete dialogové okno Vlastnosti projektu testu projektu.V projektu jazyka C#, otevřete Události sestavení stránky.V projektu jazyka Visual Basic spustit kompilace 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 k určení souborů a složek, které by měly být zkopírovány z adresáře výstupu sestavení do adresáře nasazení.

  3. Zvažte, systémem testy jednotky přímo v adresáři výstupu sestavení tak, aby bylo testování pracuje rychleji.To je zvláště užitečné v 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ý efekt dochází v žádné zkušební jízdy, ve kterém DeploymentItemAttribute vůbec nepoužívá.

    Však pravděpodobně nechcete provést v případě, že 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 nezbytný pro web a zatížení zkoušky, kódované testy uživatelského rozhraní a jakéhokoli testu, ve kterém můžete nasadit aplikaci do vzdálených počítačů.

V testovací běh jsou nasazeny všechny položky při zkouškách, které musí 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 je relativní vzhledem k výstupní složku sestavení.Může jít o soubor nebo složku.Aby se zabránilo závislost na strukturu projektu, přesunete položku do adresáře výstupu sestavení jako součást procesu sestavení.Použijte atribut položku nasazení nasazení z tohoto místa.

  • (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í.

    Název souboru nelze změnit pomocí DeploymentItem.

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

  • [DeploymentItem("file1.xml")]
    Kopíruje file1.xml výstupní adresář sestavení do adresáře nasazení.

  • [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 kopíruje file2.xml výstupní složku sestavení pro DataFiles.

    [!POZNÁMKA]

    Používáte-li druhý parametr, musí být vždy na cestu ke složce, nikdy 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 neexistuje.Zkopíruje file2.xml výstupní složku sestavení ve složce zdroje a DataFiles.Všimněte si, že není v cílové složce duplikována složka zdroje.

  • [DeploymentItem(@"TestFiles\", "TestFiles")]
    Zkopíruje obsah TestFiles do podsložky složky nasazení.Podsložky jsou replikovány v rámci cíle.

  • [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ář nachází, například bin\Debug.

    Namísto spoléhání se na strukturu projektu tímto způsobem, nastavte v souboru Kopírovat do výstupu vlastnost.Zavedení 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šíření metadat pomocí atributů.

Příklady

Následující test čte soubory s názvem "test*.xml".Zpřístupnění souborů, zkoušky a aplikace zkoušeného, jsou identifikovány pomocí DeploymentItemAttribute.Zkušební metoda ověří, zda 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ů