NUnit - Aufräumen nach fehlgeschlagenem Test

Wir haben einige NUnit-Tests, die auf die Datenbank zugreifen. Wenn einer der Tests fehlschlägt, bleibt die Datenbank möglicherweise in einem inkonsistenten Zustand. Dies ist kein Problem, da die Datenbank für jeden Testlauf neu erstellt wird. Es kann jedoch dazu führen, dass andere Tests im selben Durchlauf fehlschlagen.

Ist es möglich zu erkennen, dass einer der Tests fehlgeschlagen ist, und eine Art Bereinigung durchzuführen?

Wir wollen nicht in jedem Test Bereinigungscode schreiben, das machen wir jetzt schon. Ich möchte die Bereinigung in Teardown durchführen, aber nur, wenn der Test fehlgeschlagen ist, da die Bereinigung möglicherweise teuer ist.

Aktualisieren: Zur Verdeutlichung: Ich möchte, dass die Tests einfach sind und KEINE Bereinigungs- oder Fehlerbehandlungslogik enthalten. Ich möchte die Datenbank auch nicht bei jedem Testlauf zurücksetzen - 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 ausführen, fehlgeschlagen ist 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 suche die Implementierung von HasLastTestFailed ()

Antworten auf die Frage(11)

Ihre Antwort auf die Frage