pytest和unittest的相同点和区别

本文探讨了pytest和unittest在编写测试用例、断言、收集执行测试用例、生成测试结果、插件支持、数据驱动及前置后置操作方面的相同点和差异。pytest以其灵活性著称,支持函数和类作为测试用例,而unittest则更模板化,要求继承unittest.TestCase。此外,pytest的自动收集用例功能更为便捷,插件生态丰富,提供了参数化测试等高级功能。
摘要由CSDN通过智能技术生成

相同点:

都有如下步骤:
1.编写测试用例:测试类以Test开头,用例名以test_开头。
收集用例、执行用例、生成测试结果文件(html、xml)

区别:

pytest: 灵活
unittest: 模板化

1.编写测试用例

pytest:类和函数都可以
unittest:类,并且要继承unittest.TestCase类

断言

pytest: assert 表达式(True表示断言为真,False表示断言失败)
unittest: self.assertXXXX()

2.收集和执行测试用例

1、unittest: 用例收集(TestSuite/TestLoader)到TestSuite, TestRunner去执行用例。
2、pytest: 自动收集用例,再去执行。

pytest自动收集用例的规则:
1)确定搜索目录:从哪个目录开始搜索用例?
– pytest命令在哪个目录下执行,就以哪个目录为rootdir
– 新建main.py,在文件当中使用pytest.main() - 与在命令行当中执行pytest是一样的。
2)过滤测试文件:目录下有很多文件,如何过滤有测试用例的文件?
– 测试文件名:test_*.py 或者 *_test.py
3)过滤测试用例:文件当中,如何过滤测试用例?
– 测试用例名:test_开头 测试类名:Test开头。

pytest收集到的用例执行顺序?
先找到测试文件,再找测试文件当中的用例。
测试文件顺序:ASCII码
测试文件内部顺序:代码先后顺序

unittest收集到的用例执行顺序?ASCII码

3.生成测试结果

1、unittest: text,html(HtmlTestRunner,beautifulReport)

2、pytest:

  1. 生成JunitXML 格式的测试报告:命令:--junitxml=path
  2. 生成result log格式的测试报告:命令:--resultlog=report\log.txt
  3. 生成Html格式的测试报告:命令:--html=report\test_one_func.html(相对于rootdir路径 )
      第一步:安装pytest  html插件
            pip install pytes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值