pytest框架与unittest框架区别(学习总结)

1.测试用例:
unittest:
测试类必须继承unittest.TestCase
测试函数必须以"test_"开头
测试类必须有unittest.main()方法
pytest:
测试文件的文件名必须以"test_“开头,或者以”_test"结尾
测试类命名必须以"Test"开头
测试函数名必须以"test"开头
测试类里面不能使用"init"方法

pytest是基于unittest衍生出来的新的测试框架,使用起来相对于unittest来说更简单、效率来说更高,pytest兼容unittest测试用例

2.前置和后置方法
unittest
setUp() tearDown() 函数级别
setUpClass() tearDownClass() 类级别
setUpModule() tearDownModule() 模块级别
pytest
setup() teardown() 函数级别
setup_class() teardown_class() 类级别
setup_module() teardown_module() 模块级别

3.断言
unittest:
必须使用unittest类自带丰富的断言方法
pytest
pytest只有一种assert断言方法

4.参数化
unittest
通过@parameterized.expand()装饰器来实现
pytest
通过@pytest.mark.parameterized()装饰器来实现

5.生成报告方式
unittest
通过HTMLTestRunner生成
pytest
通过allure生成方案