2009-11-05 111 views
4

Visual Studio 2010中存在一個缺陷/功能,您無法使用2.0 CLR創建單元測試項目。單元測試在VS2010中使用MStest的.NET 3.5項目

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=483891&wa=wsignin1.0

這會導致各種各樣的問題,當被測試靶向2.0 CLR(ASP.NET MVC 2的.Net 3.5 SP1的頂部在這種情況下)項目 - 上調試崩潰,測試意外失敗,在這種情況下,測試項目甚至不會構建,因爲依賴於System.Web 2.0.0.0,而這在目標4.0的項目中不可用。

無法將測試項目更改爲目標3.5框架。

有誰知道解決方法?

解決方法我所知道的,但要避免,包括: -

1)升級整個解決方案面向.NET 4
我想主辦Azure和目前尚不清楚在這指出是否/將在何時添加對.NET 4.0的支持。見.NET 4.0 on Windows Azure?

2)滾動整個項目回來到Visual Studio 2008
這是不得已而爲之,因爲有2010年的一些特點,我真的想用

3)在構建單元測試2008年和手動管理參考
這將工作,但它將是一個巨大的痛苦。

任何想法?

+0

VS2010仍然是測試版 - 我希望你只是玩功能 - 而不是在那裏建立一個真正的生產項目。 只是一個建議.... – Dani 2009-11-05 09:42:43

+0

這是一個玩具項目,因此與科技混亂。但是,一旦Azure正式發佈,我正在考慮將其轉換爲生產應用。 – 2009-11-05 09:45:53

+1

在這種情況下,我的答案是1,試圖從MS人員那裏得到關於Azure遵從.NET 4.0 的說明,知道他們通常如何工作,如果不在這裏,它很快就會到來。 – Dani 2009-11-05 09:48:30

回答

3

它看起來像Visual Studio 2010 Service Pack 1的will resolve this一旦被釋放(見標題爲「更好的平臺支持|單元測試基於.NET 3.5」)

你可以得到一個上線測試版現在許可證...

+0

嗯,我已經安裝了SP1,我的測試項目仍然不會轉換爲3.5。 – brianary 2011-08-30 20:52:38

+0

@brianary請參閱此鏈接:http://msdn.microsoft.com/library/gg601487.aspx#re-targeting35AdditionalSteps – 2011-11-09 18:51:25

3

您還沒有建議更改爲不同的測試框架。就個人而言,我使用NUnit並有多年。 2008年的情況要複雜得多。我沒有時間看到2010年發生了什麼變化,但我看不到MS很快趕上。

+2

我目前正在避免NUnit,因爲我認爲mstest的VS集成遠遠超過NUnit的附加功能(並且我在當前環境中沒有R#)。另外,我已經有mstest測試項目;我需要移植它們。 – 2009-11-05 09:59:05

相關問題