Pytest和Unittest的区别
一、用例编写规则
1.使用unittest编写测试用例必须遵循以下规则:
1.必须首先 导入 import unittest
2.测试类必须要继承 unittest.TestCase
3.测试方法必须以test_kai开头
2.pyest是Python的第三方测试框架,是基于unittest的扩展框架,比unittest更简洁高效,使用pytest编写测试用例必须遵循以下规则:
1.测试文件必须以test开头或者_test结尾
2.测试方法需以test开头
3.测试类必须以Test开头
二、前置跟后置
1.unittest提供了setUp/tearDown,每个用例运行前、结束后运行一次。setUpClass和tearDownClass,用例执行前、结束后,只运行一次。
2.pyets 可以在函数前使用@pytest.fixture()装饰器,fixture使用范围可以是:function(函数级别)、class、module(模块级别)、package(包级别)、session(多个测试类可以共用一个session)
优势:
1.fixure命名更加灵活,局限性比较小
2.conftest.py 配置里可以实现数据共享,不需要import就能自动找到一些配置,可供多个py文件调用。
3.scope="session" 以实现多个.py跨文件使用一个session来完成多个用例
三、断言
1.unittest提供了assertEqual、assertIn、assertTrue、assertFalse等
2.pytest直接在assert 后面接表达式
四、测试报告
1.unittest使用HTMLTestRunnerNew库
2.pytest有pytest-HTML、allure插件。
五、失败重跑
1.unittest无此功能
2.pytest支持
六、参数化
1.unittest需要依赖于ddt库
2.pytest直接使用@pytest.mark.parametrize装饰器