Udostępnij za pośrednictwem


Klasa AssemblyInitializeAttribute

Określa metodę, która zawiera kod używane, zanim uruchomiono wszystkie testy w zgromadzeniu i przydzielanie zasobów uzyskanych przez Zgromadzenie.Klasa ta nie może być dziedziczona.

Hierarchia dziedziczenia

Object
  Attribute
    Microsoft.VisualStudio.TestTools.UnitTesting.AssemblyInitializeAttribute

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 AssemblyInitializeAttribute _
    Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)]
public sealed class AssemblyInitializeAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false)]
public ref class AssemblyInitializeAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)>]
type AssemblyInitializeAttribute =  
    class 
        inherit Attribute 
    end
public final class AssemblyInitializeAttribute extends Attribute

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

Konstruktorzy

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

Początek

Właściwości

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

Metoda z tym atrybutem będzie działać, zanim metody oznaczone ClassInitializeAttribute, TestInitializeAttribute, i TestMethodAttribute atrybuty.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.

[!UWAGA]

Silnik badany jest uruchamiany jest metoda, która jest oznaczony atrybutem AssemblyInitialize tylko wtedy, gdy metoda ta jest członkiem klasy, który jest oznaczony atrybutem KlasaTestowa.

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 AssemblyInitialize metodę AssemblyInit ().

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