2012-03-09 74 views
1

我正在使用臨時數據庫爲我的單元測試創​​建和刪除每個測試,但一直非常小心,以確保它與我的'真正的'數據庫(enlist = false; multipleactiveresultsets = true;)共享相同的設置,但在使用TransactionScope的任何地方,都會不斷遇到MSDTC升級問題。MVC3,測試環境和開發應用程序之間的區別?

的交易交換的TransactionScope後,我已經解決了MSDTC升級問題,並直接碰到了新的問題 - 交易完美的作品,因爲我使用的網絡瀏覽器的應用程序,但它與下面的錯誤單元測試失敗:

SqlConnection does not support parallel transactions.

沒有發佈大量代碼,是否有其他人遇到類似的問題,其中測試環境和開發環境的工作方式不同?爲什麼並行事務可以在dev中運行而不是在單元測試模式下是否有任何一般原因?

如果我無法模擬我的測試到底發生了什麼,那麼測試有什麼意義呢?

+0

我想當你包含一個數據庫時,你正在進行集成測試,而不是單元測試。對於集成測試,你可以使用Selenium(或者equivilent)通過瀏覽器測試你的系統。在你的單元測試中,你應該存根或模擬數據庫,避免這些問題。 – 2012-03-09 15:50:05

回答

1

我沒有考慮到的一個很大的區別是我可能在視圖中使用RenderAction,因此調用比測試更多的控制器操作,這可能解釋了MSDTC/Transaction問題。

相關問題