unittest

import unittest


一:unittest写测试用例(测试模块要以test_开头:test_math_method)
导入需要测试的类
1:TestLogin继承unittest.TestCase(测试类以Test打头)
2:所有用例函数test_开头
3:用例函数不能传参只有self关键字
4:执行所有用例(默认是以字母顺序执行)默认执行属性按0-9,A-Z,a-z
if __name__=='__main__':
unittest.main()
二:测试套件
1:导入测试类TestLogin
2:创建测试套件容器suite=unittest.TestSuite()
3:执行方式
1:执行一条用例:测试类('测试方法名')
suite.addTest(TestLogin('test_01'))

加载器:loader=unittest.TestLoader()
2:执行测试模块的全部用例: form import 模块名
按测试模块名加载:suite.addTest(loader.loadTestsFromModule(test_login))
3:执行测试类的全部用例: form import 测试类名
按测试类名加载:suite.addTest(loader.loadTestsFromTestCase(TestLogin))
三:测试类中断言
self.assertEqual(期望a,实际b,'函数功能出错了') a==b self.assertEqual(2,res)
assertTrue(实际a, msg=None) a布尔值true
assertIn
四:执行和报告:HTMLTestRunnerCN.py文件在python3/lib下直接导入import HTMLTestRunnerCN

with open('test_report1.html','wb') as file:
runner=HTMLTestRunnerCN.HTMLTestReportCN(stream=file, verbosity=2,title='测试。。。测试',description='筑泰测试',tester='李加')

runner.run(suite)


例子:
1:按顺序执行指定的用例
suite=unittest.TestSuite()
suite.addTest(TestMathMethod('test_add_02'))
suite.addTest(TestMathMethod('test_add_01'))
runner=unittest.TextTestRunner()
runner.run(suite)

2:按测试类加载
suite=unittest.TestSuite()
loader=unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(TestMathMethod))
runner=unittest.TextTestRunner()
runner.run(suite)

2:按模块加载
suite=unittest.TestSuite()
loader=unittest.TestLoader()
suite.addTest(loader.loadTestsFromModule(TestMathMethod))
runner=unittest.TextTestRunner()
runner.run(suite)

五:异常处理后要记得抛出
def test_add_03(self):
res=MathMethod(-1,-1).add()
print(3)
try:
self.assertEqual(2,res,'两个负数相加出错了')
except AssertionError as e:
print('出错的类型{}'.format(e))
raise e




六:命令行执行(进入项目目录--最终包)
python3 -m unittest test_login.TestLogin.test_login_03
上一篇:mysql 主从数据同步配置


下一篇:2022年年货节买什么好?2022年数码类好物推荐