unittest测试流程

Posted wusun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unittest测试流程相关的知识,希望对你有一定的参考价值。

unittest中最核心的四部分是:
1.test fixture(测试固件)
2.test case(测试用例)
3.test suite(测试套件)
4.test runner(测试执行器 )

1.测试固件(test fixture):
一个测试用例环境的搭建和销毁,是一个fixture。
包括两部分setUp()和tearDown()
执行测试代码之前的准备部分和测试结束之后的清扫代码
(这里举例以下,例如要测试百度搜索selenium这个场景,我们的测试固件可以这样写,setUp()里写打开浏览器,浏览器最大化,和打开百度首页等脚本代码;在tearDown()里写结束搜索后,退出并关闭浏览器的代码。)

2.测试用例(test case):
什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。
一个测试用例中,包括测试固件,但测试固件可以不写,但是至少有一个已test开头的函数。unittest会自动化识别test开头的函数是测试代码,如果你写的函数不是test开头,unittest是不会执行这个函数里面的脚本的,这个千万要记住,所有的测试函数都要test开头,记住是小写的哦

3.测试套件 (test suite):
多个测试用例集合在一起,就是TestSuite,而且TestSuite也可以嵌套TestSuite。
如果测试用例比作单个学生,测试套件就是好像是班级的概念。

4.测试执行器 (test runner):
test runner是一个用来执行加载测试用例,并执行用例,且提供测试输出的一个组建。test runner可以加载test case或者test suite进行执行测试任务。其中的run(test)会执行TestSuite/TestCase中的run(result)方法

5.TestLoader:
TestLoader是用来加载TestCase到TestSuite中的,其中有几个loadTestsFrom__()方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,再返回一个TestSuite实例。

6.TextTestResult:
测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。

unittest的流程:
1.写好TestCase
2.由TestLoader加载TestCase到TestSuite
3.由TextTestRunner来运行TestSuite
(我们通过命令行或者unittest.main()执行时,main会调用TextTestRunner中的run来执行,或者我们可以直接通过TextTestRunner来执行用例。)
4.运行的结果保存在TextTestResult中

注:
verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告、2 是详细报告。
用 setUp()、tearDown()、setUpClass()以及 tearDownClass()可以在用例执行前布置环境,以及在用例执行后清理环境
我们可以通过skip,skipIf,skipUnless装饰器跳过某个case,或者用TestCase.skipTest方法。

使用unittest编写用例,必须遵守以下规则:
1.测试文件必须先import unittest
技术图片
2.测试类必须继承unittest.TestCase
技术图片
3.测试方法必须以“test_”开头
技术图片
4.测试类必须要有unittest.main()方法
技术图片

以上是关于unittest测试流程的主要内容,如果未能解决你的问题,请参考以下文章

Unittest框架

unittest

如何对 ETL 流程进行测试(单元测试)?

unittests相关内容

Python单元测试之unittest

unittest单元测试框架之unittest 框架的总结