我正在使用临时数据库进行我的单元测试,每次测试都会创建和删除它,但是一直非常小心地确保它与我的'真实'数据库共享相同的设置(enlist = false; multipleactiveresultsets = true;等)但无论在哪里使用TransactionScope,都会一直遇到MSDTC升级问题。
在切换TransactionScope for Transaction后,我已经解决了MSDTC升级问题并直接遇到了一个新问题 - 当我在Web浏览器中使用该应用程序时,该事务工作正常,但在单元测试中失败,出现以下错误:
SqlConnection不支持并行事务。
如果不发布大量代码,是否还有其他人遇到类似的问题,其中测试环境和开发环境似乎工作方式不同?并行事务是否可以在开发中工作而不是在单元测试模式下有任何一般原因?
如果我无法模拟我的测试究竟发生了什么,那么测试的重点是什么?
答案 0 :(得分:1)
我没有考虑到的一个重大区别是我可能在视图中使用RenderAction
,因此调用的控制器操作比测试更多,这可能会解释MSDTC/Transaction
问题。