发布网友 发布时间:2024-09-29 08:07
共1个回答
热心网友 时间:2024-11-01 09:53
unittest 是python 的[单元测试]框架,unittest 单元测试提供了创建测试用例,测试套件以及批量执行的方案。相比于之前的pytest框架而言,unittest 在安装pyhton 以后就直接自带了,直接import unittest 就可以使用,不需要额外进行安装。
1 用例编写规则unittest框架下测试用例的规则(耦合)
测试文件必须导包
测试类必须继承unittest.Testcase
测试方法必须以test_开头
pytest框架下测试用例的规则
测试文件必须以test_开头
测试类名必须以Test开头
测试方法必须以test_开头
2 测试用例夹具(前后置、钩子)unittest
setUp/tearDown 测试用例之前和之后执行
setUpClass/tearDownClass 测试类之前和之后执行
setUpMole/tearDownMole 测试模块之前和之后执行(几乎不用)
pytest
setup/teardown 测试用例之前和之后执行
settp_class/teardown_class 测试类之前和之后执行
setup_mole/teardown_Mole 测试模块之前和之后执行
@pytest.fixture() 实现部分前后置
3 断言unittest:self.assertEqual()、self.assertIn()、self.assertTrue()等丰富的断言
方法检查的内容self.assertEqual(a,b)a==bself.assertNotEqual(a,b)a!=bself.assertTrue(a)bool(a) is Trueself.assertFalse(a)bool(a) is Falseself.assertIs(a,b)a is bself.assertIsNot(a,b)a is not bself.assertIsNone(a)a is Noneself.assertIsNotNone(a)a is not Noneself.assertIn(a,b)a in bself.assertNotIn(a,b)a not in bself.assertIsInstance(a,b)isinstance(a,b)self.assertNotIsInstance(a,b)not isinstance(a,b)self.assertGreater(a,b)a>bself.assertGreaterEqual(a,b)a>=bself.assertLess(a,b)a<bself.assertLessEqual(a,b)a<=bself.assertDictEqual(a,b)字典相等self.assertListEqual(a,b)列表相等self.assertTupleEqual(a,b)元组相等self.assertSetEqual(a,b)集合相等pytest:只有python自带的assert断言
4 测试报告unittest:HtmlTestrunner.py
pytest:pytest-html插件、allure插件
5 失败用例重跑unittest不支持失败重跑
pytest:pytest-rerunfailures插件
6 用例的参数化unittest:ddt
pytest:@pytest.mark.parametrie()