python测试框架——unittest、pytest

77 阅读1分钟

一、什么是单元测试?

单元测试就是测试的对象是程序中的最小单元的测试,程序的最小单元可以是一个函数,一个类,也可以是函数的组合,类的组合。
单元测试一般由软件开发者,而不是独立的工程师完成。单元测试属于自动化测试。

二、什么是框架?

框架,就是一个架子,这个架子能够完成领域内基础的、重要的功能,基于这个已有的架子,可以把重心放在面向业务的开发上。

三、主流框架

3.1 unittest

unittest是python标准库中自带的单元测试框架,unittest可以通过类(class)的方式,将测试用例组织在一起。

eg:

 import unittest  
 
 class TestStringMethods(unittest,TestCase):
     def test_upper(self):
         self.assertEqual("foo".upper(),"FOO")
         
 if__name__=="__main__":
     unittest.main()`

3.2 pytest

pytest是python另一个第三方测试库,目的是让单元测试变得更容易,也能扩展到支持应用层面复杂的功能测试。
pytest的特性有:
(1)支持用简单的assert语句实现丰富的断言,无需复杂的self.assert*函数
(2)自动识别测试模块和测试函数
(3)兼容unittest测试集
(4)支持Python3和PyPy3
(5)丰富的插件生态、活跃的社区

eg:

def inc(x):
    return x*1
    
def test_answer():
    assert inc(3) == 5

3.3 框架选型

一般,认为pytest入门难度更低。