2010-04-13 65 views
11

我有用.NET 3.5編寫的不同項目和一些單元測試項目來覆蓋它們。在將我的解決方案轉換爲在Visual Studio 2010中使用時,我將所有項目都保存在3.5中,但單元測試被強制爲4.0?這樣我就不能再用我的常規項目來使用它們了。Visual Studio 2010只能運行4.0單元測試嗎?

導致: 無法加載文件或程序集「xxx.xxx.Core.UnitTest」或它的某個依賴項。此程序集由比當前加載的運行時更新的運行時構建,無法加載。

所以我不能單元測試任何小於4.0的項目?或者我在這裏做錯了什麼?

回答

8

目前令人難過的答案是肯定的 - 只支持使用VS2010(.NET 4.0)創建的測試。

顯然這是一個有目的的完成 - 看看這"bug" report at Microsoft connect瞭解詳情。

更新
後,微軟已經看到他們增加了.NET 3.5的單元測試他們的方式錯誤支持VS2010 SP1 - 全部細節,可以發現in this post

您也可以重新定位現有的.NET 4.0的單元測試 - How to re-target unit-tests to .Net Framework 3.5 in VS 2010 SP1

+1

這是嚴峻的,如果這是真的。但是就MSTest而言,所有這些都沒有什麼大不了的。 – Finglas 2010-04-13 08:29:48

+0

@Finglas不幸的是,這打破了Gallio的(MbUnit)支持顯示項目測試,因爲這樣的窗口只顯示[MS]測試項目。 – 2012-02-24 00:57:47

3

雖然測試項目被轉換到Visual Studio 2010測試項目,並編制有針對性的.NET 4.0框架,幸運的是,所有您引用組件和在你的測試中測試仍然可以是.NET 3.5(或其他)程序集。其他任何事情都將是災難性的。 但是,您不能再使用Visual Studio 2008來運行這些測試項目。

解決方法當然是保留測試的源代碼,但有兩個不同的測試項目,一個用於VS2008,一個用於VS2010,使用相同的測試源代碼。 繁瑣,但一個工作解決方案。

相關問題