PyUnit(unittest) 是 Python 自带的单元测试框架,用于编写和运行可重复的测试。PyUnit 是 xUnit 体系的一个成员,xUnit 是众多测试框架的总称,PyUnit 主要用于进行白盒测试和回归测试。
PyUnit 具有如下好处:
可以使测试代码与产品代码分离。
针对某一个类的测试代码只需要进行较少的改动,便可以应用于另一个类的测试。
PyUnit 开放源代码,可以进行二次开发,方便对 PyUnit 的扩展。
PyUnit具有如下特征:
使用断言方法判断期望值和实际值的差异,返回 bool 值。
测试驱动设备可使用共同的初始化变量或实例。
测试包结构便于组织和集成运行。
对于unittest框架的使用,建议参考详细的官方文档,本文主要分享在使用unittest过程中,测试用例执行顺序问题及扩展问题。
本期以三种unittest自带的方法为例:
unittest中的执行顺序
测试用例编写之后运行,发现执行顺序并不是按照我们编写的顺序/位置来执行,许多前后有关联的测试用例在这种情况下就没有办法保证其执行的顺序性,因此使得有前后关联的测试用例执行失败。
在unittest中,loader.py的loadTestsFromTestCase方法里边,调用了getTestCaseNames方法来获取测试用例的名称,使用functools.cmp_to_key的方法对测试用例进行排序。
该方法默认是根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z。
基于unittest的机制,如何控制用例执行顺序呢?
查阅相关资料主要有如下几种方法。
通过TestSuite添加
通过TestSuite类的addTest方法,按顺序加载测试用例。
手动修改函数名称
在命名时,对函数名称进行编号,test后紧跟数字编号,根据ASCII码排序保证顺序执行。
通过TestLoader添加
通过TestSuite类的addTest方法,按顺序加载测试用例。
该方法可以同时测试多个类,并且同TestSuite方法相类似,该方法的执行需要对层级进行编号,以按照特定顺序执行。
以上内容为大家介绍了如何让软件测试用例按序执行,本文由多测师亲自撰写,希望对大家有所帮助。了解更多软件测试相关知识:https://www.duoceshi.com/xwzx-hydt/
联系人:王女士
手机:17727591462
电话:0755-21072941
邮箱:hr@duoceshi.com
地址: 广东省深圳市龙华区龙华街道清湖和平路62号优鼎企创园D栋201室,202室