Если вы используете xUnit.net, в проекте contrib есть атрибут AutoRollback. Если вы открыты для использования System.Transactions, то вы можете создать новую транзакцию перед сессией.Open () и сессия должна автоматически зачисляться (если вы не установили ado.net не зачисление автоматически) Тогда просто откажитесь в конце.
Я сделал что-то похожее на это (давным-давно) в то время:
public class TransactionalTest
{
public TransactionalTest()
{
Transaction.Current = new CommittableTransaction();
}
~TransactionalTest()
{
if (Transaction.Current != null &&
Transaction.Current.TransactionInformation.Status !=
TransactionStatus.Committed)
{
Transaction.Current.Rollback();
}
}
}
Тогда просто сделайте ваш тест продленным TransactionalTest. Но я думаю, что NUnit, MbUnit и xUnit.net все поддерживают транзакционные тесты из коробки или с проектом contrib.