VisualStudio2010多核并行环境下单元测试

【独家特稿】在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格式打开

图 3 以xml格式打开

6.2 在Execution元素上设置parallelTestCount属性

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

有效的选项包括:

不指定该属性 = 使用1CPU/核(默认值)

0 = 自动配置,我们将根据你的CPU和核心数量尽可能多的安排测试

n = 并行测试的数量(如果你不想使用所有的CPU/核)

6.3 保存你的设置,结束。

结果

我的机器是双核,因此我的测试结果是:

图 5 我的测试结果

正如你所看到的,在同一时间我运行了两个测试,如果我串行运行它们,我至少需要10秒,使用并行测试后,我只用了6秒。

图 6 结果摘要

当然还有许多其它因素会影响这一数字,但测试速度主要取决于你的CPU/核心数量。

希望本文对你有所帮助!

原文出处:http://blogs.msdn.com/vstsqualitytools/archive/2009/12/01/executing-unit-tests-in-parallel-on-a-multi-cpu-core-machine.aspx

原文名:Executing Unit Tests in parallel on a multi-CPU/core machin

【编辑推荐】

    1. 一线程序员的Visual Studio 2010 RC初体验
    2. Visual Studio 2010敏捷之道
    3. Visual Studio 2010开发绚丽Win 7应用程序
    4. 详解Visual Studio 2010敏捷测试驱动开发
    5. Visual Studio 2010升级Web开发功能 

分享名称:VisualStudio2010多核并行环境下单元测试
网站网址:http://www.shufengxianlan.com/qtweb/news33/231733.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联