从 Visual Studio 2010 升级单元测试

Visual Studio 2012 包括测试与 Visual Studio 2010 SP1 的项目兼容性测试项目。 例如,测试用 Visual Studio 2010 SP1 创建可打开使用 Visual Studio 2012,没有任何升级的项目。 因此,您的团队可使用 Visual Studio 2010 SP1,并 Visual Studio 2012 具有相同使用测试项目。 有关更多信息,请参见Upgrading tests from Visual Studio 2010

Visual Studio 2012 引入单元测试的一些更改。 由于这些更改,请务必明确兼容性问题在 Visual Studio 的早期版本和 Visual Studio 2012之间。 在对单元测试的更改中,重要的是 Visual Studio 2012 由多个测试项目模板,包括单元测试项目模板。 新的单元测试添加到新的单元测试项目模板。 单元在另一新测试还可以包括测试调用代码的 UI 的项目模板测试项目模板。 有关新测试项目的更多信息,请参见模板 从 Visual Studio 的早期版本升级测试。 默认情况下新的单元测试项目不再包括测试设置文件。 通过排除测试设置文件,您的单元测试性能改进。 对于兼容性,您仍可以使用现有测试将创建一个使用 Visual Studio 2010 版的项目。 但是,建议您删除测试设置文件出于性能原因与测试项目,除非您对测试设置文件的特定需求。 例如,您可以选择保留测试设置文件,如果您的单元在一个分布样式环境中运行测试,或者需要收集特定诊断数据。 如果您具有相似需求使用新的单元测试项目模板,或编码的 UI 测试项目模板,您可以手动添加测试设置文件添加到它们。

备注

现有的单元中的 Visual Studio 2010 SP1 测试项目将工作无缝在 Visual Studio 2010 SP1 和 Visual Studio 2012之间。在 Visual Studio 2010 在 Visual Studio 2012测试包含单元测试项目中打开 (或相反) 时,不更改对测试项目文件。

警告

Visual Studio 2010 无法打开即针对该 11.0 工具集 c. C++/CLI 项目 (在 Visual Studio 2012创建的项目)。此限制适用于所有 C++/CLI 项目,而不仅仅是 C++/CLI 单元测试项目。

备注

从命令行使用,的 vstest.console.exe 可以运行新的单元测试。通过使用帮助开关,有关使用 vstest.console.exe 的更多信息,请参见 VSTest.Console.exe 命令行选项或运行命令:vstest.console.exe /?/?。使用 MStest.exe,可以继续运行您的现有单元测试。有关更多信息,请参见如何:从命令行使用 MSTest 运行自动测试MSTest.exe 命令行选项

另一个明显的更改是新测试管理器。 在 Visual Studio 2012,您可能熟悉从 Visual Studio 的早期版本中的某些测试的窗口是已弃用,例如"测试视图"窗口。 测试 Explorer 设计的更好地支持合并测试在其软件开发实践单元的开发人员和团队。 有关更多信息,请参见用测试资源管理器运行单元测试

兼容性问题。Visual Studio 2010 SP1 和 Visual Studio 2012 之间。

这是一些问题知道,在迁移单元测试在 Visual Studio 之间 2010 SP1 和 Visual Studio 2012时:

单元测试功能

问题

解决方案

测试列表 (.vsmdi 文件) 中已弃用 Visual Studio 2012。

您不再能够为创建新的测试列表 (.vsmdi 文件) 或运行测试从 Visual Studio 列表。

提示提示
测试类别比 Microsoft Visual Studio 早期版本中的测试列表功能具有更大的灵活性。可以在测试类别中使用逻辑运算符,从而运行来自多个类别的测试,或将运行的测试仅限于属于多个类别的测试。此外,在创建测试方法时很容易添加测试类别,创建测试方法后也无需维护测试列表。通过使用测试类别,您无需注册,并检查维护测试的 <solution name>.vsmdi 文件列表。有关更多信息,请参见定义对测试进行分组的测试类别

专用访问器中已弃用 Visual Studio 2012。

在 Visual Studio 的早期版本中,可以使用公共指定内部应用程序编程接口 (API),并创建您可以调用的公共 API 重复测试一样,接下来,调用您的产品内部 API。 然后您可以使用代码生成创建测试存根并生成存根的代码段于。

您不再能够为创建专用访问器。

  • Visual Studio 2010 在 Visual Studio 2012测试项目将编译并工作。 生成将包括输出警告。

  • 如果仍需要测试内部 API,您具有以下选项:

    • 使用 PrivateObject 选件类有助于在代码中访问内部和私有 API。 这在 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 程序集中。

    • 创建以反映您的代码访问内部或私有 API 的反射机制。

    • 如果您尝试访问的代码是内部的,则可以访问您的 API 使用 InternalsVisibleToAttribute,因此测试代码可以访问内部 API 的。

测试影响移除

共享运行的结果。TRX 记录从测试管理器。

您仍可以从命令行和 Team Build 的访问 TRX 记录。

与本机 C++ 单元测试的代码复盖率

在 c. c++ 单元测试失败,并且代码复盖率启用,其中是该失败的任何堆栈跟踪。

工作区域是运行 C++ 单元测试不代码复盖率和获取堆栈确定问题。

请参见

概念

Visual Studio 11 兼容性

使用单元测试验证代码

从 Visual Studio 的早期版本升级测试

从 Visual Studio 2010 升级编码的 UI 测试