2010-04-13 68 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,使用相同的测试源代码。 繁琐,但一个工作解决方案。

相关问题