目录
unittest和pytest区别
一、安装需求
pytest为第三方需求库,需额外安装;
unittest为标准库,不需要额外安装;
二、用例编写规则
unittest
1.测试文件必须先import unittest
2.测试类必须继承unittest.TestCase
3.测试方法必须以“test_”开头
4.测试类必须要有unittest.main()方法
pytest
1.测试文件必须以“test_”开头或者“_test”结尾(如test_api.py)
2.测试方法必须以“test_”开头
3.测试类命名以“Test”开头
4.测试类里面不能使用“init”方法
5.pytest不需要继承任何类,它只需要文件、类、函数的命名符合规则就会被pytest认为是测试用例
三、用例执行
unittest
默认执行全部用例,也可以通过加载testsuit,执行部分用例
pytest
可以通过@pytest.mark 来标记类和方法,pytest.main加入参数("-m")可以只运行标记的类和方法
四、用例前后置
unittest
提供了setup/teardown,只能针对所有用例
pytest
pytest中的fixture显然更灵活,可以任意自定义方法函数,只要加上@pytest.fixture()这个装饰器,那么被装饰的方法就可以被使用
五、参数化
unittest
依赖ddt库
pytest
使用@pytest.mark.parametrize装饰器
六、断言
unittest
很多断言格式(assertequal、asserttln、assertTrue、assertFalse)
pytest
assert表达式
七、报告
unittest
使用HTMLTestRunnerNew库
pytest
pytest-HTML、allure插件
八、失败重跑
unittest
无此功能
pytest
支持用例执行失败重跑,pytest-rerunfailures插件