2012-08-30 16 views
6

Guardo los datos de prueba para el método de prueba específico en una carpeta con el mismo nombre que función. Anteriormente tuve la misma llamada de función en cada [TestMethod], ClearAllAndLoadTestMethodData() que determinaba el nombre del método a través del StackTrace. Ahora, moví esta función al [TestInitialize]. ¿Cómo puedo encontrar el nombre del método que está a punto de ejecutarse?Averigüe el siguiente método de prueba para ejecutar en MS TestInitialize

Pensé que TestContext proporciona esto. Tengo acceso a él a través del [AssemblyInitialize()] y en la primera ejecución su propiedad Name se establece con el nombre del método de prueba. Sin embargo, más tarde esto no cambia (si guardo el objeto en el campo estático).

Respuesta

18

El método AssemblyInitialize se ejecuta solo una vez antes de todas sus pruebas.

Uso del TestContext dentro del método TestInitialize:

[TestClass] 
public class TestClass 
{ 
    [TestInitialize] 
    public void TestIntialize() 
    { 
     string testMethodName = TestContext.TestName; 
    } 

    [TestMethod] 
    public void TestMethod() 
    { 
    } 

    public TestContext TestContext { get; set; } 
} 
+3

Gracias mucho. No sabía que tenía que declarar la propiedad. – majkinetor

+0

De nada. – Schaliasos

+0

Estaba buscando esta característica y tropecé con esta gran respuesta. Gracias. – Pieter21

Cuestiones relacionadas