У нас есть несколько тестов NUnit, которые обращаются к базе данных. Когда один из них терпит неудачу, он может оставить базу данных в несогласованном состоянии - что не является проблемой, поскольку мы перестраиваем базу данных для каждого тестового прогона - но это может привести к сбою других тестов в одном и том же прогоне.
Можно ли обнаружить, что один из тестов не выполнен и выполняет какую-то очистку?
Мы не хотим писать код очистки в каждом тесте, мы уже это делаем. Я хотел бы выполнить очистку в Teardown, но только если тест завершился неудачно, так как очистка может быть дорогостоящей.
Обновить. Чтобы уточнить, я хотел бы, чтобы тесты были простыми и НЕ включали логику обработки ошибок или ошибок. Я также не хочу выполнять базу данных reset при каждом тестовом прогоне - только в случае сбоя теста. И этот код, вероятно, должен быть выполнен в методе Teardown, но я не знаю, каким образом получить информацию, если тест, который мы в настоящее время срываем с неудачной или успешной.
Update2
[Test]
public void MyFailTest()
{
throw new InvalidOperationException();
}
[Test]
public void MySuccessTest()
{
Assert.That(true, Is.True);
}
[TearDown]
public void CleanUpOnError()
{
if (HasLastTestFailed()) CleanUpDatabase();
}
Я ищу реализацию HasLastTestFailed()