1

爲什麼當我通過VS2008中的單元測試 - 使用運行或調試 - VS堅持重建測試項目的所有依賴關係,即我正在測試的項目在單元測試中?VS2008中的單元測試強制重建所有依賴關係

有時他們沒有改變 - 我剛剛修改了一些單元測試。或者也許我修改了一個程序集 - 但它堅持要重建所有程序集。

我在單元測試項目中有正常的項目引用到我的其他項目。

任何建議都非常感謝,因爲這會降低我們儘可能有效地執行TDD的能力。

謝謝!

+0

我必須說,這不是我的經驗。如果我只是改變測試,VS不會重建整個解決方案... – 2009-11-12 07:48:41

+0

我知道。我昨天晚上從家用電腦上試了一下,但似乎也沒有發生。我甚至創建了兩個類庫項目A和B.引用B.如果我構建了A,它會重建B,即使B沒有改變。 – 2009-11-12 17:23:09

回答

1

好的,我發現至少是問題的原因和一個有點不滿意的解決方法!

我開始時添加了一個新的單元測試項目,並在我的主要解決方案中添加了單個項目引用。我發現我的數據(業務實體)項目受到我所描述的問題的困擾,並且因爲所有其他程序集都以某種方式依賴於我的數據項目,所以重新編譯的事實會導致所有其他程序集。

爲什麼那個總是重新編譯?這與Entity Framework有關。創建一個空項目,然後添加一個空的EF模型 - 即使沒有改變,它也會一直重新編譯。然後這會導致任何依賴重新編譯的效果,大概是因爲數據程序集的元數據已經改變。

我找到的解決方法不是添加項目引用,而是將直接程序集引用添加到數據程序集。缺點是你不能做轉到VS2008中的定義直接轉到類型 - 但鑑於我們很少使用該特定程序集執行該操作,所以它不是一個大問題。這樣做我已經縮短了編譯時間,只需要運行一個單元測試,從大約20秒到大約7秒 - 這在每天編寫數十個單元測試時會產生巨大的差異!

如果任何人有任何想法,爲什麼EF車型做到這一點,我想聽到真正的興趣......

相關問題