你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
Python在C单元测试中的应用(六)
 

32Ppython

1)优点:

     ① 借助了ython语言的动态性,比较容易书写调试case

Python也有对应的Pyunit框架,并且在高版本包含了PyunitCtypes库,比在C++中使用Cppunit更方便。

结果报表比较清晰,易于定位出错位置,并且出错信息也较详细。

④ 基于Python的跨平台,可以很方便的在多个平台下测试不同平台版本的C代码,而测试脚本基本不用重新编写。

2)缺点

    ①如果测试静态库,需要先转成动态库,并保证动态库和静态库在使用上没有差异性

    ②对于头文件定义不完整的库,例如,结构体的声明在.c或者.cpp文件中,需要在Ctypes生成的py文件中手动写生成的映射类型的各个成员。对于非基础类型,需要了解其在Ctypes中的表示形式。

    ③对于头文件依赖其他库的头文件定义,需要转换对应头文件的定义。

    ④需要熟悉CPythonCtype定义的一些类型及其转换规则。

    对于C中的类型,需要了解其对应的Ctype定义,在Python中只能使用其Ctype类型,而不是Python的类型。

    对于一些细节问题,需要格外关注其转换,如字节对齐等问题。 对于简单类型的数据准备,成本很低。 对于复杂数据类型的数据准备,成本可能比C更高,比如一个简单的char型空指针,Ctypes定义就比较复杂如POINTER(c_ubyte)()

    对于C里面常见的一些操作,需要熟悉Python对应的操作,如文件操作、socket操作。

 

参考资料

[1] Pyunithttp://pyunit.sourceforge.net/pyunit_cn.html

[2] Cppunithttp://www.vckbase.com/document/viewdoc/?id=1258

[3] ctypes tutorialhttp://python.net/crew/theller/ctypes/tutorial.html

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089