unittest框架基础
一、框架详解
1. 什么是框架?
开发大佬封装好的一个半成品,他已经对基础的代码进行了封装并提供相应接口,其他开发者只需要去调用封装之后的代码即可 举例: selenium框架 driver = webdriver.Chrome()
2.unittest单元测试框架
单元测试框架:在编程当中,针对程序的最小单元(函数,方法)进行正确性的测试框架。
3.自动化测试框架
例如:leader:针对封装的系统框架,这个代码框架就是自动化测试框架 作用: 1.提高测试效率,降低维护成本 2.提高测试准确性,增加代码的重用性和可靠性 单元测试框架是自动化测试框架的一部分,主要用于管理和运行测试用例
二、unittest单元测试框架
- 用例编写:
测试文件必须导包:import unittest 测试类必须继承 unittest.Testcase 测试方法必须以test_开头 - 测试用例夹具:
setUp/tearDown:在测试用例之前和之后执行 setUpClass/tearDownClass:在测试类之前和之后执行 setUpModule/tearDownModule:在测试模块之前和之后执行 - 断言
方法 | 测试 |
---|
assertEqual(a, b,msg=None) | a ==b | assertNotEqual(a, b) | a !=b | assertTrue(x) bool(x) | is True | assertFalse(x) Bool(x) | is False | assertIs(a, b) | a is b | assertIsNot(a, b) | a is not b | assertIsNone(x) | x is None | assertIsNotNone(x) | x is not None | assertIn(a, b) | a in b | assertNotIn(a, b) | a not in b | assertIsInstance(a, b) | isinstance(a,b) | assertNotIsInstance(a, b) | not isinstance(a,b) |
- 报告
HtmlTestrunner.py:生成的报告以网页的形式显示出来 - unittest没有失败重跑功能
- 参数化
unittest:ddd
三、单元测试框架的作用
- 发现测试用例
- 执行测试用例
- 判断测试结果
- 生成测试报告
四、unittest重要组件
- TestCase测试用例:最小单元,业务逻辑
- TestSuite测试套件:一组测试用例的集合,或者测试套件的集合。
- TestFixtrue测试夹具:执行测试用例之前和之后的操作
- TestLoader测试加载器:加载测试用例
- TestRunner测试运行器:运行指定的测试用例
五、unittest实例
单元测试-----测试函数,功能 问题:为什么在py文件中没有main方法也可以运行?
- 命令行运行方式(默认测试用例运行方式):
方式1: python -m unittest 模块名.py => 例如:python -m unittest test_unittest.py 方式2: python -m unittest 模块名.类名.方法名 => python -m unittest test_unittest.TestUnittest.test_01 方式3: python -m unittest -v 模块名.py 方式4: python -m unittest -v 模块名.py -k *_add -m:以脚本命令行的方式运行测试用例 -v:显示详细的信息 -k:通过通配符匹配方法名 - 通过main运行:
if _ name _ ==’_ _ main_ _’ : unittest.main() 步骤一:
步骤二:
注意:使用main方式时,需要点击右上角设置执行测试用例配置,完成后,点击三角符号运行测试
六、运行结果
ok/.:表示成功 F:表示失败 E:表示报错 S :用例跳过
不能通过-v的方式运行。因为这是详细的报错方式,不是简单的报错方式。
|