Classe AssemblyInitializeAttribute
Identifica um método que contém o código para ser usado antes de todos os testes no assembly executaram e alocar recursos obtidos pelo assembly. Esta classe não pode ser herdada.
Hierarquia de herança
System.Object
System.Attribute
Microsoft.VisualStudio.TestTools.UnitTesting.AssemblyInitializeAttribute
Namespace: Microsoft.VisualStudio.TestTools.UnitTesting
Assembly: Microsoft.VisualStudio.QualityTools.UnitTestFramework (em Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)
Sintaxe
'Declaração
<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
O tipo AssemblyInitializeAttribute expõe os membros a seguir.
Construtores
Nome | Descrição | |
---|---|---|
AssemblyInitializeAttribute | Inicializa uma nova instância da classe AssemblyCleanupAttribute. |
Início
Propriedades
Nome | Descrição | |
---|---|---|
TypeId | Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute. (Herdado de Attribute.) |
Início
Métodos
Nome | Descrição | |
---|---|---|
Equals | Infraestrutura. Returns a value that indicates whether this instance is equal to a specified object. (Herdado de Attribute.) | |
Finalize | Permite que um objeto tentar liberar recursos e executar outras operações de limpeza antes que ele é recuperado pela coleta de lixo. (Herdado de Object.) | |
GetHashCode | Retorna o código hash para essa instância. (Herdado de Attribute.) | |
GetType | Obtém o Type da instância atual. (Herdado de Object.) | |
IsDefaultAttribute | Quando substituÃdo em uma classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute.) | |
Match | Quando substituÃdo em uma classe derivada, retorna um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute.) | |
MemberwiseClone | Cria uma cópia superficial do atual Object. (Herdado de Object.) | |
ToString | Retorna um string que representa o objeto atual. (Herdado de Object.) |
Início
Implementações explícitas da interface
Nome | Descrição | |
---|---|---|
_Attribute.GetIDsOfNames | Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute.) | |
_Attribute.GetTypeInfo | Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface. (Herdado de Attribute.) | |
_Attribute.GetTypeInfoCount | Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute.) | |
_Attribute.Invoke | Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute.) |
Início
Comentários
O método marcado com esse atributo será executado antes de métodos marcados com o ClassInitializeAttribute, TestInitializeAttribute, e TestMethodAttribute atributos. Somente um método em um assembly pode ser decorado com esse atributo.
Importante |
---|
Esse atributo não deve ser usado no ASP.NET testes de unidade, ou seja, qualquer teste com [HostType("ASP.NET")] atributo. Devido à natureza sem estado do IIS e ASP.NET, um método decorado com esse atributo pode ser chamado mais de uma vez por execução de teste. |
Esse atributo pode ser especificado em um método. Apenas uma instância desse atributo pode ser aplicada a um método.
Observação |
---|
O mecanismo de teste executa um método marcado com o atributo AssemblyInitialize somente se esse método é um membro de uma classe marcada com o atributo TestClass. |
Para obter mais informações sobre como usar os atributos, consulte Estendendo metadados usando atributos.
Exemplos
Os exemplos a seguir demonstram a inicialização e os atributos de limpeza que são usados para indicar quais métodos devem ser executados pelo mecanismo de teste em diferentes períodos de teste.
Os exemplos de código primeiro contêm uma classe e método de teste. Para executar esse exemplo, crie um projeto de biblioteca de classes e substituir o código com o exemplo a seguir.
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
O exemplo a seguir contém código para testar DivideMethod() encontrada nos exemplos anteriores do código. Crie um projeto de teste e coloque o seguinte código em um documento de classe de teste. Adicione as referências apropriadas ao projeto. Esse código contém atributos que controlam a ordem de execução de inicialização e limpeza para o método, classe e assembly.
Em particular, observe o atributo AssemblyInitialize no método 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
Acesso thread-safe
Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Consulte também
Referência
Namespace Microsoft.VisualStudio.TestTools.UnitTesting