使用.net 4.0测试程序集测试.net 3.5程序集时的风险有多大

本文关键字:程序集 测试 net 测试程序 使用 | 更新日期: 2023-09-27 18:21:55

我意识到Visual Studio 2010 sp1现在允许测试项目以3.5为目标。然而,由于各种原因,我并不完全理解,我们的测试项目仍然以dotnet4.0为目标。

一般性问题在标题中。风险有多大?

具体来说,这可能意味着测试将在CLR v4中运行,而我们的许多客户端将使用CLR v2。此外,测试似乎使用了库组件的v4(如System.Data),即使应用程序是根据v2构建的。

一个方法(System.Data.SqlClient.SqlBulkCopy)在v2中包含一个错误,该错误已在v4中修复。我们的测试遗漏了这一点。

抛开CLR不谈,我如何才能强制我的应用程序使用某个库的v2,即使它被v4测试程序集引用(加载到的应用程序域中)?我一直在尝试一个例子,但似乎无法实现。我的3.5应用程序引用System.Data v2,并将程序集版本号回显到控制台。从3.5测试程序集调用时,版本为2.0。从4.0测试程序集来看,版本为4.0。(在我的应用程序的参考中,"特定版本"设置为true)

使用.net 4.0测试程序集测试.net 3.5程序集时的风险有多大

这应该能满足您的需求:

进程中并行执行

我对此没有答案,所以我们决定通过将我们的测试项目恢复到dotnet 3.5来回避这个问题。这意味着测试在CLR 2.0下运行。然而,我们仍然使用VS2010中的MSTest,并且仍然能够使用漂亮的2010功能,如测试类别和数据驱动测试。