Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll副本之间的差异

时间:2012-10-12 18:24:16

标签: .net unit-testing mstest

我在VS2012中创建了一个控制台应用程序,并尝试添加MS单元测试dll。但其中有5个。我应该将哪一个用于带有VS2012的.NET 4.0以及其他什么呢?

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Version:  9.0.0.0         File Version:  9.0.30729.1
Version: 10.0.0.0         File Version: 11.0.30319.1
Version: 10.0.0.0         File Version: 11.0.50727.1

Version: 10.1.0.0         File Version: 11.0.40219.1
Version: 10.1.0.0         File Version: 11.0.50727.1

2 个答案:

答案 0 :(得分:6)

每个版本的Visual Studio都附带一个Test Runner。 9,10,11尊敬地参考Visual Studio 2008,2010和2012。

直到Visual Studio 2008,每个版本的Visual Studio都针对单个.net运行时并且具有特定的测试运行器。 Visual Studio 2008通过支持多目标来改变这一点,允许您使用单个IDE来编译针对不同版本框架的应用程序。那时,一个测试运行器适用于所有的.net版本,因为.net 2-3.5都是基于CLR的第2版。

当Visual Studio 2010发布时,您可以定位并编译.net 2到4.0,但由于4.0基于不同版本的CLR,因此Visual Studio 2010团队只能运行在下编译的测试4.0。

对于想要使用VS 2010来定位早期版本的运行时并使用相同的运行时编译测试的团队来说,这显然不合适,因此Visual Studio 2010 SP1发布了一个可以针对3.5的修补测试运行器 - 因此,引入了10.1.0.0。 (如果要在VS 2010中运行3.5测试,则只需要引用10.1.0.0。)

我只是随便使用VS2012,但我猜的是同样的逻辑适用。

11.0.3xxx = .net 2-3.5 11.0.4xxx = .net 4.0 11.0.5xxx = .net 4.5

我可能在这方面错了,其中一个可能会面向WinRT。

答案 1 :(得分:1)

如果您运行的是旧版本的visual studio(编辑:或希望您的项目与旧版本的VS兼容),则必须使用旧版本,这应该澄清:http://juristr.com/blog/2011/04/trouble-with-vs-qualitytoolsunittestfra/