NUnit - limpeza após falha de teste

Nós temos alguns testes NUnit que acessam o banco de dados. Quando um deles falha, ele pode deixar o banco de dados em estado inconsistente - o que não é um problema, já que reconstruímos o banco de dados para cada execução de teste -, mas pode fazer com que outros testes falhem na mesma execução.

É possível detectar que um dos testes falhou e executar algum tipo de limpeza?

Não queremos escrever código de limpeza em todos os testes, já fazemos isso agora. Eu gostaria de realizar a limpeza no Teardown, mas apenas se o teste falhar, pois a limpeza pode ser cara.

Atualizar: Para esclarecer - gostaria que os testes fossem simples e NÃO incluíssem qualquer lógica de limpeza ou tratamento de erros. Eu também não quero executar a redefinição do banco de dados em cada teste - somente se o teste falhar. E este código provavelmente deve ser executado no método Teardown, mas eu não estou ciente de nenhuma maneira de obter informações se o teste que estamos atualmente derrubando falhou ou foi bem-sucedido.

Update2:

        [Test]
        public void MyFailTest()
        {
            throw new InvalidOperationException();
        }

        [Test]
        public void MySuccessTest()
        {
            Assert.That(true, Is.True);
        }

        [TearDown]
        public void CleanUpOnError()
        {
            if (HasLastTestFailed()) CleanUpDatabase();
        }

Estou à procura de implementação de HasLastTestFailed ()

questionAnswers(11)

yourAnswerToTheQuestion