问题 Visual Studio 2010是否只运行4.0单元测试?


我有用.NET 3.5编写的不同项目和一些单元测试项目来覆盖它们。在将我的解决方案转换为在Visual Studio 2010中使用时,我将所有项目保留在3.5中,但是单元测试被强制为4.0?这样我就不能再将它们用于我的常规项目了。

结果如下: 无法加载文件或程序集“xxx.xxx.Core.UnitTest”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。

所以我不能对不到4.0的任何项目进行单元测试?或者我在这里做错了什么?


6438
2018-04-13 08:13


起源



答案:


目前令人遗憾的答案是肯定的 - 只支持使用VS2010(.NET 4.0)创建的测试。

显然这个是故意的 - 看看这个 Microsoft连接上的“bug”报告 详情。

更新
在微软看到他们的方式错误之后,他们在VS2010 SP1中添加了.NET 3.5单元测试支持 - 可以找到完整的详细信息 在这篇文章中

您还可以重新定位现有的.NET 4.0单元测试 - 如何在VS 2010 SP1中将单元测试重新定位到.Net Framework 3.5


8
2018-04-13 08:27



如果这是真的,那将是严峻的。但就像MSTest一样,所以它毕竟没什么大不了的。 - Finglas
@Finglas不幸的是,这打破了Gallio(MbUnit)对显示项目测试的支持,因为这些窗口只显示在[MS]测试项目中。


答案:


目前令人遗憾的答案是肯定的 - 只支持使用VS2010(.NET 4.0)创建的测试。

显然这个是故意的 - 看看这个 Microsoft连接上的“bug”报告 详情。

更新
在微软看到他们的方式错误之后,他们在VS2010 SP1中添加了.NET 3.5单元测试支持 - 可以找到完整的详细信息 在这篇文章中

您还可以重新定位现有的.NET 4.0单元测试 - 如何在VS 2010 SP1中将单元测试重新定位到.Net Framework 3.5


8
2018-04-13 08:27



如果这是真的,那将是严峻的。但就像MSTest一样,所以它毕竟没什么大不了的。 - Finglas
@Finglas不幸的是,这打破了Gallio(MbUnit)对显示项目测试的支持,因为这些窗口只显示在[MS]测试项目中。


虽然测试项目转换为Visual Studio 2010测试项目并且针对.NET 4.0框架进行了编译,但幸运的是,在测试中引用和测试的所有程序集仍然可以是.NET 3.5(或其他)程序集。其他任何事情都将是灾难性的。 但是,是的,您不能再使用Visual Studio 2008来运行这些测试项目。

当然,解决方法是保留测试的源代码,但有两个不同的测试项目,一个用于VS2008,另一个用于VS2010,使用相同的测试源代码。 繁琐,但一个有效的解决方案。


3
2018-04-13 20:04