python unittest 框架

本文深入解析unittest单元测试框架,涵盖其核心概念如TestCase、TestSuite、TestLoader和TextTestRunner的功能与使用,以及丰富的断言方法,帮助读者掌握如何构建、执行和评估测试用例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本来觉得单元测试框架也就那么回事,不是非常重要,但是看一些其它人写的代码后,还是觉得总结学习一下比较好!

整理于其它博主内容,加自己的观点!

简介:

unittest单元测试框架不仅可以使用与单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。
在这里插入图片描述

  • 一个TestCase的实例就是一个测试用例,一个完整的测试流程,包括测试前准备环境的搭剑(setUP),执行测试代码(run),以及测试后环境的还原(tearDown)。元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证
  • 而多个测试用例集合在一起,就是TestSuite,而且TestUite也可以嵌套TestSuite
  • TestLoader是用来加载TestCase到TestSuite,其中有几个loadTestFrom__( )方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,在返回一个TestSuite实例
  • TextTestRunner是用来执行测试用例的,其中的run(test)会执行TestCase中的run(result)方法。测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息
  • 而对于一个测试用例环境的搭建和销毁,是一个fixture

unittest包含以下几个重要的概念:

  1. test fixture

    代表准备和清理的操作,比如setup testDown都属于test fixture
    setUp:用于测试用例执行前的初始化工作。比如测i是用例中需要访问数据库,可以在setUp中建立数据库连接进行初始化
    tearDown:用于测试用例执行之后的善后工作。如关闭数据库连接等
    tearDown即使测试方法抛出异常仍会执行,并且只有setUp( )成功执行时它才会执行
    assert*( ):一些断言的方法,在执行测试用例的过程中,最终用例是否执行通过,是通过判断测试得到的实际结果和预期结果是否相等决定的
    assertEqual(a,b,[msg=‘测试失败时打印的信息’]):断言a和b是否相等,相等则测试用例通过。

    assertNotEqual(a,b,[msg=‘测试失败时打印的信息’]):断言a和b是否相等,不相等则测试用例通过。

    assertTrue(x,[msg=‘测试失败时打印的信息’]):断言x是否True,是True则测试用例通过。

    assertFalse(x,[msg=‘测试失败时打印的信息’]):断言x是否False,是False则测试用例通过。

    assertIs(a,b,[msg=‘测试失败时打印的信息’]):断言a是否是b,是则测试用例通过。

    assertNotIs(a,b,[msg=‘测试失败时打印的信息’]):断言a是否是b,不是则测试用例通过。

    assertIsNone(x,[msg=‘测试失败时打印的信息’]):断言x是否None,是None则测试用例通过。

    assertIsNotNone(x,[msg=‘测试失败时打印的信息’]):断言x是否None,不是None则测试用例通过。

    assertIn(a,b,[msg=‘测试失败时打印的信息’]):断言a是否在b中,在b中则测试用例通过。

    assertNotIn(a,b,[msg=‘测试失败时打印的信息’]):断言a是否在b中,不在b中则测试用例通过。

    assertIsInstance(a,b,[msg=‘测试失败时打印的信息’]):断言a是是b的一个实例,是则测试用例通过。

    assertNotIsInstance(a,b,[msg=‘测试失败时打印的信息’]):断言a是是b的一个实例,不是则测试用例通过。

  2. test case

    代表最基本的测试单元,检查在特定输入的情况下是否有一个特定的输出。通过集成unitest中的TestCase类,可以快速的写出一个test case

  3. test suite

    test suite由一组test case组成,不过其中也可以包含test suite。代表所有的case集合

  4. test runner

    test runner运行所有的case,并将结果展现给用户,展现的方式可以是图形或文本,等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

她最爱橘了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值