NUnit - czyszczenie po awarii testu
Mamy kilka testów NUnit, które uzyskują dostęp do bazy danych. Gdy jeden z nich zawiedzie, może pozostawić bazę danych w niespójnym stanie - co nie stanowi problemu, ponieważ odbudowujemy bazę danych dla każdego uruchomienia testowego - ale może to spowodować, że inne testy nie powiodą się w tym samym przebiegu.
Czy można wykryć, że jeden z testów się nie powiódł i przeprowadzić jakieś czyszczenie?
Nie chcemy pisać kodu czyszczącego w każdym teście, już to robimy. Chciałbym usunąć porządek w Teardown, ale tylko jeśli test się nie powiedzie, ponieważ czyszczenie może być kosztowne.
Aktualizacja: Aby wyjaśnić - chciałbym, aby testy były proste i NIE obejmowały żadnej logiki czyszczenia lub obsługi błędów. Nie chcę też wykonywać resetowania bazy danych przy każdym uruchomieniu testowym - tylko jeśli test się nie powiedzie. Kod ten powinien być prawdopodobnie wykonany w metodzie Teardown, ale nie wiem o żadnym sposobie uzyskania informacji, jeśli test, który obecnie niszczymy, nie powiódł się lub zakończył się powodzeniem.
Aktualizacja2:
[Test]
public void MyFailTest()
{
throw new InvalidOperationException();
}
[Test]
public void MySuccessTest()
{
Assert.That(true, Is.True);
}
[TearDown]
public void CleanUpOnError()
{
if (HasLastTestFailed()) CleanUpDatabase();
}
Szukam implementacji HasLastTestFailed ()