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装饰器

原文地址:https://www.cnblogs.com/666666pingzi/p/11450687.html