Pytest入门笔记(一)-- pytest与unittest区别
一、unittest
Unittest是Python标准库中自带的单元测试框架,Unittest也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Python语言的标准单元测试框架。
Unittest支持自动化测试,测试用例的初始化、关闭和测试用例的聚合等功能,它有一个很重的特性:它是通过类(class)的方式,将测试用例组织在一起。
1 # 导入unittest模块 2 import unittest 3 # 应用unittest框架,类必须继承 unittest.TestCase 4 class UnitDemo(unittest.TestCase): 5 # 普通函数封装 6 def test_login(self): 7 print("unittest demo!") 8 self.assertEqual('123', '123', msg='断言失败') 9 10 if __name__ == '__main__': 11 # unittest 执行测试用例的行为 12 unittest.main()
二、Pytest
Pytest是Python的另一个第三方单元测试库。目的是让单元测试变得更容易,并且也能扩展到支持应用层面复杂的功能测试。
Pytest的特性有:
- 支持用简单的assert语句实现丰富的断言,无需复杂的self.assert*函数;
- 自动识别测试模块和测试函数;
- 模块化夹具用于管理各类测试资源;
- 对Unittest完全兼容,对nose基本兼容;
- 支持Python3 和 PyPy3;
- 丰富的插件生态,社区繁荣。
三、Pytest VS Unittest