Udostępnij za pośrednictwem


Klasa AssemblyCleanupAttribute

Określa metodę, która zawiera kod ma być używany po uruchomieniu wszystkich testów w zgromadzeniu i zwolnić zasoby uzyskane przez Zgromadzenie.Klasa ta nie może być dziedziczona.

Hierarchia dziedziczenia

System.Object
  System.Attribute
    Microsoft.VisualStudio.TestTools.UnitTesting.AssemblyCleanupAttribute

Przestrzeń nazw:  Microsoft.VisualStudio.TestTools.UnitTesting
Zestaw:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (w Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Składnia

'Deklaracja
<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple := False)> _
Public NotInheritable Class AssemblyCleanupAttribute _
    Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)]
public sealed class AssemblyCleanupAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false)]
public ref class AssemblyCleanupAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)>]
type AssemblyCleanupAttribute =  
    class
        inherit Attribute
    end
public final class AssemblyCleanupAttribute extends Attribute

Typ AssemblyCleanupAttribute uwidacznia następujące elementy członkowskie.

Konstruktorzy

  Nazwa Opis
Metoda publiczna AssemblyCleanupAttribute Inicjuje nowe wystąpienie AssemblyCleanupAttribute klasy.

Początek

Właściwości

  Nazwa Opis
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

Metoda z tym atrybutem będą uruchamiane po metody oznaczone TestCleanupAttribute i ClassCleanupAttribute atrybuty.To nie będzie wykonywał, jeśli nieobsługiwany wyjątek.Metoda, która ma AssemblyCleanupAttribute atrybut zostanie wykonany, jeśli nie jest w tej samej klasy co metoda badania.Tylko jedną metodę w zestawie mogą być ozdobione ten atrybut.

Ważna uwagaWażne

Ten atrybut nie powinien być używany w ASP.NETTO jednostki badań, oznacza to, że każde badanie z [HostType("ASP.NET")] atrybut.Ze względu na charakter bezpaństwowców, usługi IIS i ASP.NETTO, ozdobione ten atrybut może być wywołana metoda więcej niż raz na przebieg testu.

Ten atrybut może być określona w metody.Tylko jedno wystąpienie tego atrybutu, mogą być stosowane do metody.

Aby uzyskać więcej informacji na temat atrybutów, zobacz Rozszerzanie metadanych za pomocą atrybutów.

Przykłady

W poniższych przykładach pokazano inicjowania i oczyszczanie atrybuty, które są używane do wskazywania, które metody powinny być uruchamiane przez silnik badany w różnych okresach testu.

Pierwszy przykłady kodu zawiera klasy i metody badania.Aby uruchomić ten przykład, utworzyć projekt biblioteki klas i Zastąp kod w poniższym przykładzie.

using System;

namespace SampleClassLib
{
    public class DivideClass
    {
        public static int DivideMethod(int denominator)
        {
            return (2 / denominator);
        }
    }
}
Imports System

Namespace SampleClassLib
    Public Class DivideClass
        Shared Function DivideMethod(ByVal denominator As Integer) As Integer
            Return 2 \ denominator
        End Function
    End Class
End Namespace

Poniższy przykład zawiera kod, aby przetestować DivideMethod() w poprzednich przykładach kodu.Tworzenie projektu badania i umieść następujący kod w dokumencie klasy badania.Dodaj odpowiednie odniesienia do projektu.Ten kod zawiera atrybuty, które kontrolować kolejność wykonywania inicjowania i oczyszczania dla metody klasy i montażu.

W szczególności należy zwrócić uwagę, atrybut AssemblyCleanup metodę AssemblyCleanup ().

using Microsoft.VisualStudio.TestTools.UnitTesting;
using SampleClassLib;
using System;
using System.Windows.Forms;

namespace TestNamespace
{
    [TestClass()]
    public sealed class DivideClassTest
    {
        [AssemblyInitialize()]
        public static void AssemblyInit(TestContext context)
        {
            MessageBox.Show("AssemblyInit " + context.TestName);
        }

        [ClassInitialize()]
        public static void ClassInit(TestContext context)
        {
            MessageBox.Show("ClassInit " + context.TestName);
        }

        [TestInitialize()]
        public void Initialize()
        {
            MessageBox.Show("TestMethodInit");
        }

        [TestCleanup()]
        public void Cleanup()
        {
            MessageBox.Show("TestMethodCleanup");
        }

        [ClassCleanup()]
        public static void ClassCleanup()
        {
            MessageBox.Show("ClassCleanup");
        }

        [AssemblyCleanup()]
        public static void AssemblyCleanup()
        {
            MessageBox.Show("AssemblyCleanup");
        }

        [TestMethod()]
        [ExpectedException(typeof(System.DivideByZeroException))]
        public void DivideMethodTest()
        {
            DivideClass.DivideMethod(0);
        }
    }
}
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Imports SampleClassLib2.SampleClassLib
Imports System
Imports System.IO
Imports System.Windows.Forms

Namespace TestNamespace
    <TestClass()> _
    Public NotInheritable Class DivideClassTest
        <AssemblyInitialize()> _
        Public Shared Sub AssemblyInit(ByVal context As TestContext)
            MsgBox("AssemblyInit " + context.TestName)
        End Sub 'AssemblyInit

        <ClassInitialize()> _
        Public Shared Sub ClassInit(ByVal context As TestContext)
            MsgBox("ClassInit " + context.TestName)
        End Sub 'ClassInit

        <TestInitialize()> _
        Public Sub Initialize()
            MsgBox("TestMethodInit")
        End Sub 

        <TestCleanup()> _
        Public Sub Cleanup()
            MsgBox("TestMethodCleanup")
        End Sub 

        <ClassCleanup()> _
        Public Shared Sub ClassCleanup()
            MsgBox("ClassCleanup")
        End Sub 

        <AssemblyCleanup()> _
        Public Shared Sub AssemblyCleanup()
            MsgBox("AssemblyCleanup")
        End Sub

        <TestMethod()> _
        <ExpectedException(GetType(System.DivideByZeroException))> _
        Public Sub DivideMethodTest()
            DivideClass.DivideMethod(0)
        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

Inne zasoby

Anatomia Test jednostki

Unit Testing Framework