Hintergrund
Eine NUnit-Framework-Erweiterung, die ich auf Bedürfnisse gerade arbeitete das Ergebnis/Ergebnis der einzelnen Tests innerhalb eines ITestAction
Attributs wissen, wie so:Kann NUnit TestContext.CurrentContext in parallelen Tests verwendet werden?
public class MyFrameworkExtensionAttribute : Attribute, ITestAction
{
public void BeforeTest(ITest test)
{ /* Omitted, not relevant to this question */ }
public void AfterTest(ITest test)
{
var result = TestContext.CurrentContext.Result;
var resultIsSuccess = result.Outcome.Status == TestStatus.Passed;
// Then go on to do stuff with that resultIsSuccess variable
}
}
Beachten Sie die erste Zeile in den AfterTest
Methode; Ich verwende eine statische Referenz: TestContext.CurrentContext. Die ITest
Schnittstelle stellt das Ergebnis des Tests nicht zur Verfügung, so scheint es Testkontext ist der einzige Weg.
Frage
Und meine Frage ist nun - weil NUnit 3.x enthält Funktionalität Tests parallel ausführen können, über ParallelizableAttribute
- Ich frage mich: Ist es sicher, dass die statischen Verweis auf den aktuellen Test Kontext zu benutzen? Gibt es irgendwelche Sicherheitsbedenken, über die ich hier besorgt sein sollte? Gibt es einen besseren/robusteren Weg, das Testergebnis zu erhalten, ohne auf eine statische Referenz zurückgreifen zu müssen?
Ich benutze NUnit Framework 3.7.1 für den Fall, dass es darauf ankommt.