Visual Studio 2010多核并行环境下单元测试

发表于:2010-03-25来源:作者:点击数: 标签:单元StudioVisualvisualstudio
在Visual Studio 2010中,我们推出了运行并行测试的功能,现如今许多机器有多个CPU或一颗CPU有多核,因此我们认为如果测试时利用机器上的所有处理器或所有处理核心,那一定很有意义。同时,还可以有效地提高同一时间测试运行的次数,因此可以缩短运行所有测

  在Visual Studio 2010中,我们推出了运行并行测试的功能,现如今许多机器有多个CPU或一颗CPU有多核,因此我们认为如果测试时利用机器上的所有处理器或所有处理核心,那一定很有意义。同时,还可以有效地提高同一时间测试运行的次数,因此可以缩短运行所有测试的时间。

  决定

  我们研究了所有不同的测试类型和我们已有的功能,做出了下列决定:

  1、我们支持多CPU/核执行的唯一测试类型是单元测试。我们是基于后面这几个因素做出这个决定的:测试类型是UI测试吗?测试已经实现了某些形式的并行执行吗?测试类型托管在不同的主机适配器上吗(我们可能无法控制测试如何执行)?依赖性测试能保证按一定的顺序正确执行吗?测试是一个单元测试扩展吗?这些问题的答案迫使我们选择只支持单元测试。

  2、数据适配器(Data Adapters)无法启用。因为数据收集是基于测试事件的,数据收集时如果有多个测试任务正在执行,将会减缓测试的速度,此外,数据本身可能被错误地隔离到特定的测试中,但可能包括来自其他测试的数据和信息。

  3、这种情况仅会发生在通过Visual Studio或MSTest执行本地测试时。因为远程测试允许你跨多个代理划分测试,我们决定对远程执行不启用此方案,此外,目前仅适用于Visual Studio或MSTest。

  需求

  你可能已经等不及要问我,快告诉我需要做什么!

  好,但我首先要提醒你,虽然再明显不过了,但我还是要说,那就是你需要准备一台多处理器或多核的机器,可以使用虚拟机,但你要保证宿主主机是多CPU的,最简单的方法就是打开任务管理器进行验证。

使用任务管理器

  图 1 使用任务管理器查看是否是多CPU/核

  我的机器只有一颗CPU,但是双核的。

  另外,你的测试必须是线程安全的,只有你自己才能确保它们是,如果不能保证,就可能导致不正确的结果、死锁和许多头痛的问题。

  如何启用并行测试执行

  1、确保你有一台多CPU/核机器;

  2、确保你只运行单元测试;

  3、确保你的测试是线程安全的;

  4、确保你的数据适配器没有开启;

  5、确保你在本地运行测试;

  6、修改你的测试设置文件。在测试设置文件上点右键,选择“用…打开”

准备打开测试设置文件

  图 2 准备打开测试设置文件

  6.1以xml格式打开

以xml格式打开

  图 3 以xml格式打开

  6.2 在Execution元素上设置parallelTestCount属性

设置parallelTestCount属性

  图 4在Execution元素上设置parallelTestCount属性

原文转自:http://www.ltesting.net