首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>资讯动态>开源资讯>正文

Google基于开源的新C 测试框架发布

http://www.oklinux.cn  2008-07-18  InfoQ中文站    会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn
  Google最近开源了其基于xUnit的C 单元测试框架。项目开发者Zhanyong Wan说在Google内部已经有数以千计的C 开发者在使用该框架,并且已经持续好几年了。

  根据Google所述,此次发布的主要亮点体现在:

  Google Test是便携式的:它可以通过不同版本的GCC和MSVC编译器应用在多种平台上(Linux、Windows、Mac OS X等等)。你甚至可以将它用于Windows CE和Symbian这样的嵌入式系统中。很多平台的构建工具和测试运行器都处在开发当中,并且现在已经有Linux的Autotools支持了。

  支持fatal和nonfatal断言。在nonfatal失败后测试还会继续。这使得在一次单独的编辑——编译——测试周期中能发现并修复更多问题。

  对常见的测试需求提供很多断言,同时你也可以轻松地对不常见的情况定义新的断言。

  在Linux上,你可以编写death tests以确保你的代码在遇到期望的错误时崩溃。

  因为该框架基于流行的xUnit架构,所以如果你以前使用过该家族中的任何一个测试框架,那么就很容易掌握它。

  C 社区一直都觉得他们的单元测试工具不如Java和C#等其他现代语言的好,很多人还会问:“为什么还要用另一个工具?它有什么特别的?”。在其wiki的Faqs中,Googlers尝试去解答这些问题。他们说他们并没有宣称其工具要比现存的好,而仅仅是将对其工作有帮助的一些功能整合起来。从该站点上我们看到:

  我们希望这个列表能帮助你判定Google Test是否对你也有帮助:

  Google Test被设计为便携式的。在很多STL类型(如std::string及std::vector)无法编译的地方它都能正常执行。它无需异常或者RTTI。所以,它能运行在Linux、Mac OS X、Windows及一些嵌入式操作系统上。

  事实证明Nonfatal断言(EXPECT_*)可以节省大量时间,因为他们使得在一次单独的编辑——编译——测试周期中能报告多个失败。

  编写可以生成信息的断言非常简单:就用流(stream)语法来附加任何额外的信息就行,如ASSERT_EQ(5, Foo(i)) << " where i = " << i;。它不需要新的宏或者特殊的函数。

  Google Test自动检测你的测试,你如果想运行测试的话就无需列举他们。

  没有一个框架能预料到你所有的需求,因此Google Test提供了EXPECT_PRED*以方便地扩展你的断言词汇表。通过良好的语法,你可以使用EXPECT_PRED*来方便地定义你自己的断言宏。

  Death tests非常方便,它能确保恰当的情况可以触发你在产品中的断言。

  当断言失败是来自于内部的过程或者循环时,SCOPED_TRACE有助于你了解断言失败的上下文。

  你可以使用命名模式来决定运行哪些测试。当你想快速重现某个失败时这会节省你大量时间。

  Saptarshi Purkayastha花了一些时间来调研该框架并在其博客上写了一些想法。他的反应是积极的。

  该框架另一个让人称道的地方就是学习其基础与高级特性都是那么容易。它与xUnit非常像并且具备了可以与CppUnit抗衡的优势。你可以从这里学习基础,从这里学习高级特性。Predicate Assertions可能是我最喜欢的特性之一了,当我们调试遇到麻烦时就可以在程序中使用该特性。还有很多其他的断言,我们还没有深入地研究他们。但是自从第一次看到该框架,我们很多人就将它作为最好的测试框架之一了...

  根据wiki所述,你可以查看初级手册以尽快上手Google Test,然后请参考高级指南以了解更多内容。

上一篇:事务保存点在一个订购系统中的使用情况   下一篇:Linus谈Linux内核版本号有意创新

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Linus谈Linux内核版本号有意创新
·法国在开源软件应用领域处于世界领先地位
·专家访谈:Donald Knuth访问实录
·操作系统大战:Linux VS Vista VS XP
·Sun计划将用Java社群来推广MySQL
·手机操作系统开源本土厂商冀望TD机会
·Linux开源手机FreeRunner实机预览
·思科举开源大旗聚合增值渠道
·红帽在中国政府采购战场全面告捷
·福布斯:Android或凭借中国市场战胜iPhone
·Linux为超便携笔记本带来无限商机
·谷歌回应推Gphone挑战iPhone传闻
·《第二人生》面临开源竞争对手
·花钱消灾 Redhat化解专利侵权诉讼
·业界观察:Linux和微软帝国的博弈
·Sun宣布将增加对Python语言的支持
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Linus谈Linux内核版本号有意创新
·法国在开源软件应用领域处于世界领先地
·专家访谈:Donald Knuth访问实录
·操作系统大战:Linux VS Vista VS XP
·Sun计划将用Java社群来推广MySQL
·手机操作系统开源本土厂商冀望TD机会
·Linux开源手机FreeRunner实机预览
·思科举开源大旗聚合增值渠道
·红帽在中国政府采购战场全面告捷
·福布斯:Android或凭借中国市场战胜iPho
·Linux为超便携笔记本带来无限商机
·谷歌回应推Gphone挑战iPhone传闻
  阅读排行
·Ubuntu 8.04免费为人类每天节省22万多
·Fedora9新版出炉趋向完美(多图秀)
·Fedora 9正式版即将发布 引发Linux热潮
·Ubuntu 8.10 Intrepid Ibex发布时间表
·龙芯红旗2000携手国产千元电脑8月上市
·为EeePC量身定做Ubuntu Eee 8.04多图赏
·Ubuntu 8.04彩蛋大展多图赏析
·推荐:10款Linux平台播放器畅听音乐
·腾讯Linux QQ已进测试阶段7月正式发布
·红旗2000引爆“中国式创新办公”
·深度PK: Opera9.5 vs Firefox3
·Firefox 3正式版之全体验(多图)
·Linux 2008:超越UNIX挑战微软
·龙芯笔记本将搭载红旗2000普及教育
·“中国卓越项目管理者”颁奖典礼4月5日
网摘收藏: