5 Stimmen

Wie man den aktuellen TestContext im TeamCity NUnit-Runner bekommt

In NUnit ist es möglich, den aktuellen Test mit NUnit.Framework.TestContext.CurrentContext zu erhalten. Wenn ich Tests auf meinem lokalen Rechner ausführe, wird dies während des Tests korrekt ausgefüllt. Wenn jedoch auf einen Dev-Server mit TeamCity verschoben wird, hat diese Datenstruktur ein Problem, das Fehler verursacht. Diese Fehler treten auf, wenn auf context.Test.FullName, context.Test.Name und context.Result zugegriffen wird. Zum Beispiel mit folgendem Code:

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

tretet diese Ausnahme auf, aber nur wenn TeamCity die Tests ausführt:

TearDown-Methode fehlgeschlagen. TearDown: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
--TearDown
   bei NUnit.Framework.TestContext.TestAdapter.get_Name()

Wird der TestContext von TeamCity nicht ausgefüllt oder gibt es eine korrekte Möglichkeit, diese Daten abzurufen?

1voto

mjibson Punkte 16802

Beste Vermutung: Dies ist nicht möglich, da TeamCity die TestContext-Datenstrukturen nicht bevölkert. Noch kann es das, da die Setter in NUnit nicht öffentlich sind. Um diese Funktionalität zum Laufen zu bringen, muss wahrscheinlich NUnit modifiziert werden.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X