在pocket pc 2003下使用google Test
上一篇 / 下一篇 2010-05-13 11:06:02 / 个人分类:单元测试
在pocket pc 2003下使用google Test
经过几天的查资料和交流,终于可以在pocket pc 2003上运行google test了。下面介绍如何在xp和ppc下搭建gtest。
缩略语:
PPC == pocket pc 2003
Gtest == google testing framework
Gtest介绍:
Google's framework for writing C++ tests on a variety of platforms (Linux, Mac OS X, Windows, Cygwin, Windows CE, and Symbian). Based on the xUnit architecture. Supports automatic test discovery, a rich set of assertions, user-defined assertions, death tests, fatal and non-fatal failures, value- and type-parameterized tests, various options for running the tests, and XML test report generation.
简单翻译过来是:
Gtest支持各种平台(Linux, Mac OS X, Windows, Cygwin, Windows CE, and Symbian),它是基于xUnit构架的。支持自动化测试。包含诊断,用户自定义的诊断,death tests,致命和非致命的失败,值和类型参数化的测试,各种测试选项,测试结果输出支持控制台和xml格式输出2种方式。
所以总结出来就是简洁和跨平台。
一、在xp下使用gtest
1. 下载源代码,从http://code.google.com/p/googletest/downloads/list上下载最新的测试代码
【注:】
1) http://googletest.googlecode.com/svn/trunk/得到最新的源码更好,否则在ppc下编译不通过。
2) 如果遇到问题,可以在http://code.google.com/p/googletest/issues/list上可以查看客户反映的问题
2. 在windows xp下编译win32对应的库:
1) 用vs2008打开msvc下的sln
2) 选择平台win32,编译debug的lib库
3. 在新工程下使用gtest:
1) 新建测试项目:新建一个项目TestGTestForXp
2) 拷贝头文件和lib库:拷贝gtest的include到TestGTestForXp.vcpro的父目录,拷贝gtestd.lib到TestGTestForXp.vcpro的父目录的lib文件夹下(自己建)
3) TestGTestForXp.cpp下代码:
1. #include "stdafx.h"
2. #include "gtest/gtest.h"
3. int add(int a, int b)
4. {
5. return a+b;
6. }
7.
8. TEST(AddTest, TestNonNegativeNumber)
9. {
10. EXPECT_EQ(3, add(1,2));
11. EXPECT_EQ(115, add(1,114));
12. }
13.
14. int _tmain(int argc, _TCHAR* argv[])
15. {
16. testing::InitGoogleTest(&argc, argv);
17. RUN_ALL_TESTS();
18. return 0;
19. }
4) 编译-连接-运行(直接F5),则可以看到测试效果
二、在WinCE下使用gtest
在WinCE下使用gtest比较麻烦,有是重点
1. 如何在wince上显示控制台?
因为wince是不显示控制台的,如果运行带控制台的程序,什么也看不到,所以想用gtest在console里面输出结果,可以这样做:
ü 下载console.dll,拷贝到windows下
ü 修改注册表HKEY_LOCAL_MACHINE\Drivers\Console为0
2. 如何编译ppc下gtest的lib库?
ü 参考:http://www.mivi.name/blog/index.php?itemid=257。在迁移evc的project时,
Ignore Specific Library(忽略特定库)加上oldnames.lib
AdditionalDependencies(附加依赖项)加上commctrl.lib coredll.lib aygshell.lib secchk.lib ccrtrtti.lib
ü 参考:http://blog.csdn.net/wincemobile/archive/2009/02/12/3883493.aspx
Project --> Settings --> Link tab --> Category = Output
-->Entry-point symbol: WinMainCRTStartup ==> mainACRTStartup
TAG: