使用VS2010中的MStest对.NET 3.5项目进行单元测试

4
在Visual Studio 2010中存在一个bug/特性,即无法使用2.0 CLR创建单元测试项目。

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年构建单元测试并手动管理引用
这样做是可行的,但会非常痛苦。

有什么想法吗?


VS2010仍然是BETA版本 - 我希望你只是在尝试功能而不是在那里构建真正的生产项目。这只是一个建议... - Dani
这只是一个玩具项目,所以我在尝试各种技术。不过,一旦 Azure 正式发布,我考虑将其转化为生产应用程序。 - Iain Galloway
1
在这种情况下,我的答案将是1,尝试从微软人员那里获取有关Azure符合.NET 4.0的说明。了解他们通常的工作方式,如果它不在这里,很快就会出现在这里。 - Dani
2个回答

3
您没有建议更换不同的测试框架。就我个人而言,我使用NUnit已经很多年了。它比2008年的东西要复杂得多。我还没有时间看看2010年有什么变化,但我不能想象微软会那么快赶上来。

2
我目前避免使用NUnit,因为我更重视mstest与VS集成的程度,而不是NUnit的附加功能(并且我在当前环境中没有R#)。此外,我已经有了mstest测试项目;我需要进行移植。 - Iain Galloway

3

看起来Visual Studio 2010 Service Pack 1将会在发布后解决此问题(请查看“更好的平台支持| .NET 3.5上的单元测试”标题)。

现在您可以获取具有Go-Live许可证的Beta版本...


我已经安装了SP1,但我的测试项目仍无法转换为3.5。 - brianary
@brianary 请查看此链接:http://msdn.microsoft.com/library/gg601487.aspx#re-targeting35AdditionalSteps - Charles Chen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接