2009-09-15 11 views
50

Pregunta rápida, ¿cómo creo un método que se ejecuta solo una vez antes de que se ejecuten todas las pruebas en la solución?Método de inicialización de prueba global para MSTest

+0

Ojalá lo supiera, también :(Actualmente, tengo una clase base abstracta de la que hereda cada TestClass. Dentro de esa clase, tengo un método TestInitialize. El problema es que ese método se dispara cada vez que se ejecuta una prueba nueva. ! –

+0

Haga que la clase base abstracta implemente un constructor estático. Se disparará solo una vez antes de ejecutar cualquiera de las pruebas. – mglmnc

Respuesta

88

Cree un método público estático, decorado con el atributo AssemblyInitialize. El marco de pruebas llamará a este Configuración método de una vez por prueba de funcionamiento:

[AssemblyInitialize()] 
public static void MyTestInitialize(TestContext testContext) 
{} 

Para TearDown su:

[AssemblyCleanup] 
public static void TearDown() 
{} 

EDIT:

Otro detalle muy importante: la clase a la que pertenece este método debe decorarse con [TestClass]. De lo contrario, el método de inicialización no se ejecutará.

+3

Si tiene pruebas en más de un ensamblaje, se llamará a MyTestInitialize más de una vez para su ejecución de prueba . – BenCr

Cuestiones relacionadas