异步TestInitialize导致TransactionScope丢失的问题求助
异步TestInitialize导致TransactionScope丢失的问题求助
我最近在做一个项目,想在每个测试开始前插入测试数据,然后回滚事务,保证下一个测试能在干净的环境里运行。下面这段骨架代码原本运行得好好的:
[TestClass] public class TransactionAsyncTest { private TransactionScope? _scope; [TestInitialize] public void TestInitialize() { _scope = new TransactionScope(TransactionScopeOption.Required, TransactionScopeAsyncFlowOption.Enabled); } [TestMethod] public void Test() { Assert.IsNotNull(Transaction.Current); } [TestCleanup] public void TestCleanup() { _scope?.Dispose(); } }
可当我把TestInitialize的定义改成public async Task TestInitialize()之后,在Test方法里Transaction.Current居然变成null了!
有没有办法让TestInitialize保持异步的同时,还能在Test方法里复用同一个事务(事务作用域)呀?
内容来源于stack exchange
相关产品推荐
相关产品推荐

