unittest 1 基础用法
用Python搭建自动化测试框架,我们需要组织用例以及测试执行,这里博主推荐Python的标准库unittest。
基础概念
unittest是python自带的单元测试框架。unittest库的4个重要概念test fixture,test case,test suite, test runner。
-
test fixture
测试执行之前的准备工作和测试执行后的清理工作。 -
test case:
一个测试用例是在unittest中执行测试的最小单元。unittest提供了一个名为TestCase的基础类,可以用来创建测试用例。 -
test suite:
"测试套件",也有人称为"测试套",是测试用例或测试套件的集合,一般用来把需要一起执行的用例组合到一起。 -
test runner:
用来测试执行并且输出测试结果。可以是图形界面或者命令行界面。
总之test fixture的功能可以理解成是初始化和清理测试数据及环境。test case是测试用例。test suite是用例集合。test runner的作用是运行用例并返回结果。
使用举例
import unittest
def add(a, b):
return a + b
# 一个类是一个测试用例,测试指类中的测试方法,测试用力中可以有多个测试。
class SimpleTest(unittest.TestCase):
def test_add(self):
self.assertEqual(add(3, 7), 10)
def test_add2(self):
self.assertEqual(add(5, 5), 10)
def test_add3(self):
self.assertEqual(add("s", "b"), "sb")
if __name__ == "__main__":
unittest.main()
记住:测试用例中方法名以test开头,不是以test开头是不会被test runner执行的.
输出结果如下
Ran 3 tests in 0.002s
OK
Process finished with exit code 0
-
用setUp与setUpClass区别
setup():每个测试case运行前运行
teardown():每个测试case运行完后执行
setUpClass():必须使用@classmethod 装饰器,所有case运行前只运行一次
tearDownClass():必须使用@classmethod装饰器,所有case运行完后只运行一次
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)