[编辑(哈伦):Duplicate ]
我正在寻找一种方法来自动将我的 NUnit 集成测试包装在数据库事务中,以便在测试结束时自动回滚测试所做的更改。理想情况下,我会用自定义属性装饰某些测试方法,这会导致 NUnit 在测试开始时创建事务并在测试结束时将其回滚......我可以编写属性,但我不知道在哪里添加一张支票。
测试数据库的大小为 3GB,因此无法在每次测试开始时恢复它。我知道我可以在每个测试的主体中手动创建一个事务,但我正在寻找更优雅的东西。
也许有一个 IL 重写工具(也许是一个 AOP 框架)可以为我做这件事?有人有什么建议吗?
请您参考如下方法:
你不会在这里遇到嵌套事务的麻烦吗?据我了解,大多数数据库不支持事务中的事务。因此,如果被测代码完全使用事务(我想如果你使用的是支持事务的数据库,你就会使用它们),那么你真正想要的是嵌套事务,(我被告知)最数据库不直接支持。