在複雜的VS2008解決方案中,我有三個單元測試項目。由於它們在相同的測試數據庫上運行,因此測試項目一個接一個地執行很重要。首先哪個項目並不重要,只是在另一個項目開始之前就完成了。在解決方案中運行所有測試時的單元測試序列
如果我想執行所有這些,有幾種方法可以做到這一點,這導致不同的結果:
- 我有一個測試列表,其中測試由項目有序.vsmdi文件。如果我打開列表並從測試列表編輯器執行測試,一切都很好。
- 如果我打開測試視圖窗口,按項目排序測試並運行它們,再次一切正常。
- 但是,如果我通過從菜單中選擇「測試 - >運行 - >解決方案中的所有測試」來運行測試,它們將以隨機順序執行,其中一些測試失敗,因爲其他測試項目之一已經在操作測試D b。
所以問題是,什麼決定了使用第三種方法時的單元測試序列?有沒有辦法在.testrunconfig中指定默認測試列表?
由於有解決方法,這個問題根本就不重要。但任何想法都是受歡迎的。 謝謝。
我完全同意應該避免共享夾具。然而,這裏的問題不是測試的順序,而是測試項目並行運行,導致數據庫設置和拆卸的同步問題。我沒有詳細描述。我認爲現在最好的解決方案是db的全局設置和拆卸。 – Wullie 2009-12-01 02:23:56
我不認爲MSTest並行運行測試 - 至少,這不是我的經驗。 – 2009-12-01 05:46:48