2012-08-30 5 views
6

Ich halte die Testdaten für bestimmte Testmethode in Ordner mit dem gleichen Namen als Funktion. Ich hatte zuvor den gleichen Funktionsaufruf in jedem [TestMethod], ClearAllAndLoadTestMethodData(), der den Methodennamen über StackTrace festlegte. Jetzt habe ich diese Funktion auf [TestInitialize] verschoben. Wie finde ich den Namen der Methode, die ausgeführt werden soll?Finden Sie die nächste Testmethode zur Ausführung in MS TestInitialize

Ich dachte TestContext bieten dies. Ich habe Zugriff auf es über [AssemblyInitialize()] und beim ersten Lauf seine Eigenschaft Name wird auf den Namen der Testmethode festgelegt. Später ändert sich das jedoch nicht (wenn ich das Objekt im statischen Feld speichere).

Antwort

18

Die Methode AssemblyInitialize wird nur einmal vor allen Tests ausgeführt.

Verwenden Sie die TestContext innerhalb des TestInitialize Methode:

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

    [TestMethod] 
    public void TestMethod() 
    { 
    } 

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

Vielen viel. Ich wusste nicht, dass ich Eigentum erklären muss. – majkinetor

+0

Sie sind herzlich willkommen. – Schaliasos

+0

Ich suchte dieses Feature und stolperte über diese großartige Antwort. Vielen Dank. – Pieter21