We have some NUnit tests that access the database. When one of them fails it can leave database in inconsistent state - which is not an issue, since we rebuild database for
You can add a [TearDown] method with if (TestContext.CurrentContext.Result.Status != TestStatus.Passed) some code to be executed if test failed.
[TearDown]
if (TestContext.CurrentContext.Result.Status != TestStatus.Passed)