unittest与pytest的区别
前言
unittest 与 pytest是我们做自动化测试中最常用的两个框架,那么他俩具体有哪些区别嘞;一下总结了一张表格,方便了解
unittest | pytest | |
---|---|---|
用例编写方法 | 1.测试文件必须导入unittest包 2.测试类型必须继承"unittest.TestCase" 3.测试类必须要有"unittest.main()"方法 4.测试方法必须要以"test_"开头 | 1. 测试文件名要以"test_“开头或”_test"结尾 2.测试类名字要以Test开头 3.测试方法名字test_打头 |
用例分类执行 | 1.默认执行全部用例 2.通过加载testsuite,执行部分用例 | 1.通过@pytest.mark打标记类和方法 2.pytest.main运行时加入参数"-m 标记名1 and 标记名2"执行打标的类方法 |
用例前后置 | 1.提供setUp/tearDown方法,只能针对所有用例 | 1.pytest中使用fixture方法,定义任意自定义方法函数,加上@pytest.fixture()修饰器,被装饰的方法就可使用 |
参数化 | 依赖 ddt库 | 使用@pytest.mark.parametrize装饰器 |
断言格式 | assertEqual、assertTrue、assertFalse、assertIn····· | 只有assert一个表达式,使用更加方便 |
生成测试报告 | HTMLTestRunner、unittestReport······ | 可集成allure插件展示测试报告 |
失败重跑 | 无 | pytest-rerunfailures插件可支持设置用例失败重跑 |
总结:unittest使用起来更加复杂些,兼容性插件少,二次开发更加方便;pytest使用起来更加方便,可兼容unittest测试用例,插件及语法糖较多,使用起来更加方便