unittest和pytest自动化测试框架对比

基于python语言:unittest、pytest
基于Java语言:junit、testng(Java的本次不做讲解)

unittest、pytest框架区别

1、用例编写规则
unittest:提供了testcase测试用例,testsuites测试套件、testfixtrue测试固件或者夹具,testloader测试加载器,testrunner测试运行器。必须遵守以下原则:
(1)测试文件必须先导入import uinttest
(2)测试类必须继承unittest.TestCase
(3)测试方法必须以test开头

pytest:是python的第三方测试框架,基于unittest扩展框架,必须遵守以下规则:
(1)测试文件必须以test_开头或者_test结尾
(2)测试类必须以Test开头
(3)测试方法必须以test开头
2、用例的前置和后置
unittest:
setUp/tearDown :在每个用例之前和之后运行一次
setUpClass/tearDownClass:在每个类之前和之后运行一次
setUpModel/tearDownModel:在每个模块之前和之后运行一次

pytest:
方法级:
setup_method/teardown_method 在方法之前和之后执行
setup/teardown
函数级:
setup_function/teardown_function 在函数之前和之后执行
或者在函数之前加上@pytest.fixture()
类级:
setup_class/teardown_class 在类之前和之后执行
模块级:
setup_module/teardown_module 在模块之前和之后执行
3、断言
unittest:assertTrue,assertEqual、assertIn
pytest:assert
4、报告
unittest:htmltestrunner
pytest:插件、pytest-HTML、allure
5、失败重跑
unittest:无
pytest:pytest-rerunfailures插件
6、数据驱动
unittest:ddt
pytest:@pytest.mark.parametrize装饰器
7、用例分类执行
unittest:默认执行所有用例,也可以通过testsuite来执行部分用例,或者加参数-k
pytest:@pytest.mark

你可能感兴趣的:(unittest和pytest自动化测试框架对比)