Python,UnitTest框架 和 Fixture

UnitTest,原名为PyUnit,是由java的jUnit衍生来的,是python内置的单元测试框架。

主要包含:TestCase(测试用例,体现在setUp、run、tearDown)、TestSuite(测试套件)、TestRunner(执行用例,并将测试结果保存到TextTestResult实例中)、TestLoader(加载TestCase到TestSuite中)、Fixture(一个测试用例的初始化准备及还原,主要是setUp() 和 tearDown()方法)

一、UnitTest框架

1、TestCase

必须继承unittest.TestCase,并且测试用例必须以test开头

示例:测试函数求和,一共有两条用例

Python,UnitTest框架 和 Fixture_第1张图片

Python,UnitTest框架 和 Fixture_第2张图片

2、Testsuite,测试套件,可以整合所有测试用例

步骤:1、创建测试套件;2、将测试用例放入测试套件中;3、执行测试用例。

测试用例case1.py:

Python,UnitTest框架 和 Fixture_第3张图片

 测试套件:将测试用例放到测试套件中,统一执行。

以下方法适用于将类中的指定测试用例放到测试套件中,或者指定类中的所有测试用例放到测试套件中执行。

Python,UnitTest框架 和 Fixture_第4张图片

 3、TestLoader

通过discover()方法将所搜指定路径下的所有py文件,并将查找到文件中的所有以test开头的方法添加到测试套件中。

Python,UnitTest框架 和 Fixture_第5张图片

二、 Fixture

 测试用例执行前、后要自动调用的函数。比如测试数据准备、数据库链接、打开浏览器等。

示例1,方法级别:放在类中。

每个测试用例执行前都会调用一次setUp,执行后都会调用一次tearDown

Python,UnitTest框架 和 Fixture_第6张图片

 示例2,类级别:放在类中,需要用@classmethod修饰。

当调用类中的不管多少方法,类开始的时候调用一次setUpClass,结束的时候调用一次tearDownClass,。如果有多个类,那么就会执行多次。

Python,UnitTest框架 和 Fixture_第7张图片

示例3,模块级:放在类外。

不管py文件中有多少类和多少方法,py文件执行前只调用一次setUpModule(),py文件执行后调用一次tearDownModule()

测试py文件:

Python,UnitTest框架 和 Fixture_第8张图片

调用后文件后的执行结果:

Python,UnitTest框架 和 Fixture_第9张图片

 

你可能感兴趣的:(python,unit,testing,python)