OK我有在VS2013,我不認爲有隨機單元測試失敗
我有一個測試的任何地方解決互聯網上的代碼覆蓋率一代的問題900+的單元測試我的項目正在運行,如果在VS2010
測試套件工作正常(100%合格),如果我在VS2013從菜單中測試運行它們>運行全部通過>套件中的所有測試
但是,如果我想從菜單Test> Analyze Code Coverage> All Tests生成VS2013中的代碼覆蓋率,那麼很多測試(其中500個以上)會失敗,在所有
測試運行的詳細信息窗口特別的原因包括,因爲它無法指出爲什麼測試失敗(下圖)的有用信息
注意:
- 測試將通過如果我重新運行特定的測試,或從菜單運行所有測試測試>運行>所有測試
- 這個問題oc小人我的機器和其他一些隨機的,而對於團隊的其他成員,代碼覆蓋率一代工作正常(100%檢驗合格)
- 這個問題永遠不會發生在VS2010
編輯
添加代碼BoreholeRepositoryTest在行98
這只是一個測試的起點
您的測試中可能存在競爭條件或耦合問題,只在某些情況下才會出現。這是不可能的。這些真正的單元測試(例如它們是完全隔離的)還是集成測試混合在一起? –
嗨丹尼爾,那些只是單元測試,沒有集成測試。測試是完全獨立的(它們可以在vs2010下以任意順序運行,並且仍然通過) – HuyNA
您可以發佈BoreholeRepositoryTest.cs的代碼(特別感興趣的是第98行)? @DanielMann很可能是正確的,因爲有一些競爭條件促成了這一點。 (例如,儘管沒有人期望共享資源,但資源可能會共享) – Lilshieste