zoukankan      html  css  js  c++  java
  • 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

    本文来自博客园,作者:中州韵,转载请注明原文链接:https://www.cnblogs.com/zhongzhouyun/p/14968036.html

  • 相关阅读:
    NCD 2019 M. NCD Salary
    NCD 2019 H. Mr. Hamra and his quantum particles
    Codeforces Testing Round #16 C.Skier
    序列自动机(数组)
    Codeforces #640 div4 F~G (构造二连弹)
    NCD 2019 C. Hasan and his lazy students
    欧拉定理,费马小定理
    微信开发
    异常后显示错误页面
    js窗体间传值
  • 原文地址:https://www.cnblogs.com/zhongzhouyun/p/14968036.html
Copyright © 2011-2022 走看看