1、unittest简介

官网文档https://docs.python.org/3/library/unittest.html 点此处跳转至官网 1、单元测试框架是受到 JUnit 的启发,与其他语言中的主流单元测试框架有着相似的风格。它支持测试自动化,配置共享和关机代码测试。支持将测试样例聚合到测试集中,并将测试与报告框架独立。
2、熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,对应python中单元测试框架为unittest和pytest,等后面有空,再分享pytest框架。
3、unittest可以用来做单元测试,接口测试、UI测试、也可以完成自动化测试。

2、unittest组成

2.1 test fixture

测试fixture表示执行一个或多个测试以及任何相关的清除操作所需的准备工作。例如,这可能涉及创建临时或代理数据库、目录或启动服务器进程。

2.2 test case

测试用例是单独的测试单元。它检查特定输入集合的特定响应。unittest提供了一个基类TestCase,可以用来创建新的测试用例。

2.3 test suite

测试套件是测试用例、测试套件或两者的集合。它用于聚合应该一起执行的测试。

2.4 test runner

测试运行程序是编排测试执行并向用户提供结果的组件。运行程序可以使用图形界面、文本界面或返回一个特殊值来指示执行测试的结果。

3、unittest原理

unittest如何输出测试报告 unittest官方文档_unittest如何输出测试报告


简要分为这几步:

  • 1、编写TestCase,方法必须已test_开头;
  • 2、TestLoader将TestCase加载到TestSuite中;
  • 3、由TextTestRunner来运行测试套件(TestSuite);
  • 4、将运行的结果保存至TextTestResult中;

4、简单使用

可以先使用打印源码看一下

import unittest
print(help(unittest))

unittest如何输出测试报告 unittest官方文档_单元测试_02


由上面源码看出,其实有一个简单的例子,模拟上面源码,来实操一下:

import unittest
class TestDemoOne(unittest.TestCase): # 必须要继承TestCase父类
    def testMinus(self): # 测试用例以test开头
        result = 100-99
        expect = 1
        # 断言,判断上述测试用例,实际结果result是否与expect相等
        self.assertEqual(result,expect)

if __name__ == '__main__':
    unittest.main()

执行结果

unittest如何输出测试报告 unittest官方文档_python_03

好了,跟着博主一起学习unittest框架,从入门到进阶之路开冲!
后续有时间会接着分享unittest相关的内容!
谢谢大家,欢迎评论区进行交流