Wir haben einige NUnit-Tests, die auf die Datenbank zugreifen. Wenn einer von ihnen ausfällt, kann die Datenbank in einem inkonsistenten Zustand bleiben - was kein Problem darstellt, da wir die Datenbank für jeden Testlauf neu aufbauen - aber es kann dazu führen, dass andere Tests im selben Lauf fehlschlagen.NUnit - Bereinigung nach Testfehler
Kann festgestellt werden, dass einer der Tests fehlgeschlagen ist, und eine Bereinigung durchführen?
Wir wollen in jedem Test keinen Bereinigungscode schreiben, das machen wir jetzt schon. Ich würde gerne in Teardown aufräumen, aber nur wenn der Test fehlgeschlagen ist, da die Reinigung teuer sein könnte.
Update: Um zu verdeutlichen - ich möchte Tests einfach sein und keine Bereinigung oder Fehlerbehandlung Logik enthalten. Ich möchte auch keinen Datenbank-Reset bei jedem Test ausführen - nur wenn der Test fehlschlägt. Und dieser Code sollte wahrscheinlich in der Teardown-Methode ausgeführt werden, aber mir ist keine Möglichkeit bekannt, Informationen zu erhalten, wenn der Test, den wir gerade beenden, fehlgeschlagen oder erfolgreich war.
Update2:
[Test]
public void MyFailTest()
{
throw new InvalidOperationException();
}
[Test]
public void MySuccessTest()
{
Assert.That(true, Is.True);
}
[TearDown]
public void CleanUpOnError()
{
if (HasLastTestFailed()) CleanUpDatabase();
}
Ich bin auf der Suche für die Umsetzung von HasLastTestFailed()
Wenn Sie nicht in jedem Test oder nach jedem Test aufräumen möchten, wird keine Bereinigung durchgeführt. Es tut uns leid. – rein