开发者社区> 技术小美> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

mockcpp & testngpp在2010.7~11月的改进

简介:
+关注继续查看
mockcpp & testngpp在2010.7~11月的改进
 
 
mockcpp:
 
1、支持多种的xUnit测试框架。
(支持testngpp、gtest、CppUnit、CppUTest)
 
2、支持spy约束关键字。
(用于窥探给某个被mock函数传入的入参)
 
3、支持check约束关键字。
(以函数,或者仿函数对象来自定义参数检查规则)
 
4、支持Windows 7下的ApiHook功能。
(原来的ApiHook功能在Win7上使用有异常)
 
5、支持Linux下的ApiHook功能。
(之前只支持Windows,现在支持了Linux,在Linux下页可以不用MOCKABLE来进行C函数的mock )
 
6、支持64位平台下的ApiHook功能。
(在Windows XP 64bit + VS2008下测试通过)
 
7、支持VC __stdcall调用约定的函数的mock。
(__stdcall调用约定的函数,清栈的方式与默认不同。VC下socket操作函数都是__stdcall)
 
8、增加自动化编译脚本build.sh和build_install.sh(Linux&cygwin)以及它们的Windows版本(PowerShell脚本)。
(build.sh用于编译和运行测试用例,build_install.sh用于编译并安装,详细用法参见代码根目录的BuildGuide)
 
9、在verify之后,自动执行reset。
(无论是全局函数mock,还是对象mock,都支持这种方式,用户不用调用reset)
 
10、[DEV] 梳理了Windows和Linux用例的差异,现在两种平台上都可以运行通过所有用例。
 
 
 
 
testngpp:
 
1、支持内存泄露检查。
(监控测试用例运行中的内存申请释放,如果有内存未释放在报错)
 
2、错误信息输出改进,尽可能把有价值的信息打印出来。
(避免只报告给用户一个SEH异常,因为它很可能是在异常捕获后又抛出了异常,这种时候非常需要原始的异常信息)
 
3、支持统计并显示Fixture初始化出错的问题。
(有时在Fixture构造时失败,原来testngpp在这种情况下不输出任何信息,现在会打印Fixture初始化失败原因和统计信息)
 
4、Generator支持-d参数指定生成辅助.cpp文件的目录,这种模式下会给每个测试文件生成一个对应的.cpp文件,并且把多个这样的.cpp链接为一个测试.dll。
(同时在generator中判断是否需要重新生成.cpp文件,这样就可以良好的支持增量编译了)
 
5、测试辅助.cpp文件包含对应测试文件.h时,使用相对路径。
(避免路径存在中文时,写辅助.cpp文件时会出错)
 
6、支持在命令行使用TestModule或者TestModule.dll加载测试dll文件。
(原来只支持不带dll的情况)
 
7、支持Visual Studio 2010。
 
8、增加自动化编译脚本build.sh和build_install.sh(Linux&cygwin)以及它们的Windows版本(PowerShell脚本)。
(build.sh用于编译和运行测试用例,build_install.sh用于编译并安装,详细用法参见代码根目录的BuildGuide)
 









本文转sinojelly51CTO博客,原文链接:http://blog.51cto.com/sinojelly/438153,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
解决shell脚本中"source /etc/profile"重载配置文件不生效的问题
1、shell脚本中“source /etc/profile”无法生效的原因及解决办法;2、shell中"."、"source"、"sh"、"./"的区别;
0 0
Docker镜像仓库Docker Registry
官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要Docker Registry,它可以用来存储和管理自己的镜像。
0 0
MYSQL的longtext字段能放多少数据?
生产上遇到问题, 同事说MYSQL里的字段放不下5m大小的数据。 于是,将django model里textfield里的max_length变长了。 依然无效, 于是,更改mysql的设置: set global max_allowed_packet = 2*1024*1024*10 或是设置文件my.cnf里: max_allowed_packet = 20M 退出mysql再进入,查看是否生效: show VARIABLES like '%max_allowed_packet%'; 解决问题。
2009 0
page_address()函数分析--如何通过page取得虚拟地址
由于X86平台上面,内存是划分为低端内存和高端内存的,所以在两个区域内的page查找对应的虚拟地址是不一样的。一. x86上关于page_address()函数的定义在include/linux/mm.h里面,有对page_address()函数的三种宏定义,主要依赖于不同的平台:首先来看看几个宏的定义:CONFIG_HIGHMEM:顾名思义,就是是否支持高端内存,可以查看config文件,一般推荐内存超过896M的时候,才配置为支持高端内存。
731 0
关于DLL搜索路径顺序的一个问题
DLL的动态链接有两种方法。一种是加载时动态链接(Load_time dynamic linking)。Windows搜索要装入的DLL时,按以下顺序:应用程序所在目录→当前目录→Windows SYSTEM目录→Windows目录→PATH环境变量指定的路径。
1061 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载