unittest编写并运行测试用例

一、unittest编写测试用例

        1、导入unittest包

         

        2、编写测试类继承unittest.TestCase父类

        

        3、编写测试用例,测试用例是必须以test开头(test不是固定的,也可以修改源码为其他开头)、测试方法使用assert断言来判断测试结果是否通过

        

二、运行测试用例的几种方法

1、通过unittest.main()来执行测试用例的方式:

方便将一个单元测试模块变为可直接运行的测试脚本,main()方法使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并自动执行他们。执行方法的默认顺序是:根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z。所以以A开头的测试用例方法会优先执行,以a开头会后执行

缺点:只能执行当前模块的测试用例,如果有多个模块的话就不能用这种方式;

2、通过testsuit的addtest()方法将测试用例加载到测试套件中,用TexttestRunner()的run方法来执行测试用例

优点:可以指定测试用例运行的顺序(按照加载的顺序);可以运行多个模块中指定的测试用例

缺点:测试用例比较多的时候一个一个添加就不现实了

 3、通过TestLoader加载测试用例,添加到测试套件、执行测试用例

优点:直接将测试类添加到测试套件中,比一个一个用例去添加强,可以运行指定的测试类

缺点:测试类较多的时候,一个类一个类添加的话也不方便

 4、通过discover方法批量加载运行测试用例

    defaultTestLoader()类下面的discover()方法可自动根据测试目录start_dir匹配查找测试用例文件(test*.py),并将查找到的测试用例组装到测试套件,因此可以直接通过run()方法执行discover

discover=unittest.defaultTestLoader.discover(case_dir,pattern="test*.py",top_level_dir=None)

 1.discover方法里面有三个参数:

-case_dir:这个是待执行用例的目录。

-pattern:这个是匹配脚本名称的规则,test*.py意思是匹配test开头的所有.py文件。

-top_level_dir:这个是顶层目录的名称,一般默认等于None就行了。

优点:批量加载指定目录下的所有测试用例,适用于测试模块比较多的情况

缺点:不能指定测试用例顺序

 5、使用HTMLTestRunner生成测试报告

     具体使用参考文档链接:https://www.cnblogs.com/yoyoketang/p/6680503.html

 

原文地址:https://www.cnblogs.com/yhms/p/12076764.html