unittest基础

unittest四个核心概念





运行原理

image

  • TestCase
    • 创建测试用例
      • 什么才算是测试用例?
        • 测试类中,以Test开头的方法,是测试用例
      • 什么才算是测试类?
        • 继承unittest.TestCase
        • 类名以Test开头,类名所在的文件也要以Test开头
  • TestSuite
    • 创建测试套件、添加测试用例至套件
    • 注意:上面只是unittest加载用例的一种方式,其中还有另外一种加载用例的方式,以脚本的形式收集测试用例,是TestSuite的另外一种实现方式;可参考https://www.kanzhun.com/jiaocheng/439112.html
  • TextTestRunner
    • 创建测试运行程序、运行测试套件上述是以文本格式显示报告内容,此外可借助三方库定制HTML格式的报告其中report_name为报告名称,自定义
  • Fixture
    • 用例前后置处理

总结编写用例到生成测试报告的一个流程

生成报告的方式有两种
这里要注意:没有说让你用unittest还是用pytest生成,我们最好两种都说下
一种是使用unittest编写用例,通过unittest自带运行程序运行
一种是unittest写的用例,用pytest+allure来运行

  1. unittest方式

根据上面图中所示:
第一步:准备好测试用例
第二步:创建测试套件
第三步:我们就需要去查找需要的测试用例。我们可以创建一个用来加载测试用例的对象TestLoader(),然后根据需求调用这个对象下加载测试用例的方法,得到测试用例
第四步:将找到的用例添加到套件中,方法是调用TestSuite.addTest(),作为参数传给套件的addtest方法
第五步:创建一个测试运行程序,unittest提供了一个文本类型的TextTestRunner,我们以它为例,将测试套件作为参数传给该对象下的run方法进行运行,就会在控制台生成文本类型的测试报告,一般不用这个,可以借助网上共享的一些第三方库,比如HtmlRunner等进行生成

如果创建测试用例要说详细点的话,可以用下面的这句话,描述什么是一个测试用例,以及怎么写
(首先我们先创建一个以test开头的py文件,py文件中创建一个以test开头的类,然后该类继承unittest.TestCase类,之后这个类就是测试类,接下来写的测试用例就可以在这个类下面进行编写,同样测试方法的方法名要以test开头,方法内部就进行预期和实际结果的断言)

  1. pytest方式1.准备好测试用例2.筛选测试用例(通过mark标记来指定,也可以通过具体的路径进行指定)3.使用allure生成allure创建测试报告所需要的数据1.生成目录名,用于allure报告数据存放2.allure serve 启动服务,打开测试报告

测试用例的方法是否一定需要test开头?如何修改?

不是,如何更改这个属性
https://www.cnblogs.com/ctltest/p/14514448.html

已知测试文件收集规则
image.png
已知测试用例收集规则(以什么开头)
image.png

image.png

可以知晓unittest命名规则

测试文件》测试类》测试用例
默认只要求测试用例以test开头,然后测试文件如果是以discover收集,也是test开头,测试类则没有强制要求

unittest的其他理论知识

用例通过和失败的判定原理:

只要test方法中有异常,就会算失败用例,但一般都是通过AssertError判断

unittest用例的执行顺序

详情可参考:https://blog.csdn.net/baixin2014/article/details/101353903

测试方法中是否只能断言一次?

可以写多个断言异常,只要其中一个异常了,下面的不会执行

一个测试类中是否能够多次使用@data,装饰多个测试方法?

可以
image.png

posted @ 2021-07-04 00:09  中州韵  阅读(51)  评论(0编辑  收藏  举报