Python 自动化测试框架unittest与pytest的区别(1)(图)

测试工具 创建于:2022-02-18
  Unittest vs Pytest   主要从用例编写规则、用例的前置和后置、参数化、断言、用例执行、失败重运行和报告这几个方面比较unittest和pytest的区别:
  用例编写规则



  用例前置与后置条件

      
断言

      
测试报告


  
失败重跑机制


  
参数化


  
用例分类执行
      如果不好看,可以看下面表格:
  总体来说,unittest用例格式复杂,兼容性无,插件少,二次开发方便。pytest更加方便快捷,用例格式简单,可以执行unittest风格的
测试用例,无须修改unittest用例的任何代码,有较好的兼容性。pytest插件丰富,比如flask插件,可用于用例出错重跑,还有xdist插件,可用于设备并行执行,效率更高。
  实例演示   讲了七大区别,总要演示一下具体实例,用事实说话。
  前后置区别   这里抽用例前置与后置的区别来讲,先看unittest的前后置使用:   import unittest   class TestFixtures01(unittest.TestCase):       # 所有用例执行前执行       def setUp(self) -> None:           print("setUp开始")       def tearDown(self) -> None:           print("tearDown结束")       # 每条用例执行前执行       @classmethod       def setUpClass(cls) -> None:           print("setUpClass开始")       @classmethod       def tearDownClass(cls) -> None:           print("tearDownClass结束")       # 测试用例       def test_001(self):           print("测试用例001")   class TestFixtures02(unittest.TestCase):       def test_002(self):           print("测试类2")   # 每个模块执行前执行   def setUpModule():       """       在所有测试类在调用之前会被执行一次,函数名是固定写法,会被unittest框架自动识别       """       print('集成测试 >>>>>>>>>>>>>>开始')   def tearDownModule():       print("集成测试 >>>>>>>>>>>>>>结束")   if __name__ == '__main__':       unittest.main()

  运行结果:

  从结果上得知, 三个方法的逻辑优先级: setUp()&tearDown() < setUpClass()&tearDownClass() < setUpModule()&tearDownModule()    
  
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理

来这里,成为51Testing签约原创作者!

原文地址:http://www.51testing.com/?action-viewnews-itemid-4481296

免责声明:本文来源于互联网,版权归合法拥有者所有,如有侵权请公众号联系管理员

* 本站提供的一些文章、资料是供学习研究之用,如用于商业用途,请购买正版。

发表于:2022-2-18 09:08 作者:佚名 来源:CSDN