2013-04-25 13 views
5

In NUnit ist es möglich, den aktuellen Test mit NUnit.Framework.TestContext.CurrentContext zu erhalten. Wenn ich Tests auf meinem lokalen Computer durchführe, wird dies während des Tests korrekt aufgefüllt. Wenn diese Datenstruktur jedoch auf einen Dev-Server verschoben wird, auf dem TeamCity ausgeführt wird, treten bei der Datenstruktur Fehler auf. Diese Fehler treten auf, wenn auf context.Test.FullName, context.Test.Name und context.Result zugegriffen wird. Zum Beispiel mit dem folgenden Code:So erhalten Sie den aktuellen TestContext in TeamCity NUnit Runner

var name = NUnit.Framework.TestContext.CurrentContext.Test.Name; 

diese Ausnahme auftritt, aber nur, wenn Teamcity läuft die Tests:

TearDown method failed. TearDown : System.NullReferenceException : Object reference not set to an instance of an object. 
--TearDown 
    at NUnit.Framework.TestContext.TestAdapter.get_Name() 

Ist Teamcity nicht die TestContext bevölkert oder gibt es einen richtigen Weg, dies zu erhalten Daten?

Antwort

1

Beste Schätzung: Dies ist nicht möglich, da TeamCity die TestContext-Datenstrukturen nicht auffüllt. Noch kann es, weil die Setter in NUnit nicht öffentlich sind. Damit diese Funktionalität funktioniert, muss NUnit wahrscheinlich geändert werden.

Um diese Einschränkung zu umgehen, haben wir unseren eigenen Test-Runner mit einer benutzerdefinierten Datenstruktur geschrieben, um einen Testfehler anzuzeigen (was der Hauptzweck dieser Methode war).

Verwandte Themen