unittest测试框架:
unittest是Python自带的单元测试框架,不仅用于单元测试,还用于自动化测试。优点:能将多个用例一起运行;有丰富的断言;能够生成测试报告。
核心组成:
TestCase 测试用例,用于书写脚本,代码 TestSuite 测试套件 ,将多个测试用例组装到一起 TestRunner 测试执行 ,运行测试套件 TestLoader 测试加载,是测试套件的补充,也是用于组装测试用例 Fixture 测试夹具,是书写代码的一种结构
-
TestCase 测试用例 使用步骤: 1、导包 import unittest 2、定义测试类,继承unittest.TestCase() 3、定义测试方法 ,方法名一定要以test开头 4、在这里插入图片描述 -
TestSuite 测试套件和TestRunner 测试执行 使用步骤: 1、导包import unittest 2、实例化套件对象 unittest.TestSuite() 3、添加测试用例的测试方法 #方法一(添加单个):套件对象.addTest(测试类名(‘测试方法名’)) #方法二(添加测试类的所有测试方法):套件对象.addTest(unittest.makeSuite(测试类名) 4、实例化执行对象 unittest.TextTestRunner() 5、执行 执行对象.run(套件对象) TestLoader 测试加载 当有多个测试类时,使用unittest.makeSuite()组装,显得冗余,TestLoader可以解决这个问题。
import unittest
suite=unittest.TestLoader().discover('./','*.py')
unittest.TextTestRunner().run(suite)
Fixture 测试夹具
方法级Fixture
def setUpClass(self):
pass
def tearDownClass(self):
pass
类级Fixture
@classmethod
def setUp(cls):
pass
@classmethod
def tearDown(cls):
pass
模块级Fixture
def setUpModule ():
pass
def tearDownModule ():
pass
例:
def login(username, password):
if username == 'admin' and password == '123456':
return '登录成功'
else:
return '登录失败'
import unittest
from eee import login
class testEEE(unittest.TestCase):
def tearDown(self) -> None:
if self.s=='登录成功':
print('通过')
else:
print('不通过')
def testLogin(self):
self.s=login("admin",'123456')
def testLogin1(self):
self.s=login("aaa",'123456')
def testLogin2(self):
self.s=login("admin",'123123')
def testLogin3(self):
self.s=login("aaa",'123123')
def testLogin4(self):
self.s=login("",'123456')
-------------------------------------------------------------------------------------
Launching unittests with arguments python -m unittest TestCaseEEE.testEEE in D:\pythonProject\untitled4
通过
不通过
不通过
不通过
不通过
Ran 5 tests in 0.003s
OK
Process finished with exit code 0
|