Python学习34:自我复习:Pytest和Unitest

Python主流框架

- Unittest

  • unittest是Python标准库中自带的一款单元测试框架,支持自动化测试,测试用例的初始化和关闭,测试用例的聚合等功能
  • Unitest特性:通过class方式,将测试用例组织在一起
  • Unitest不需要单独下载,可直接在Python内直接使用
实例:
import unittest

class Testunittest(unittest.TestCase):
	def test_testcase(self):
		self.assertEqual("abc".upper(),"ABC")

if __name__ == "__main__":
	unittest.main()

- Nose

  • Nose是Python的第三方单元测试框架,需要先进行下载安装:pip install nose
  • nose现在被nose2所继承,但nose2不支持nose的全部功能
实例:
import nose

def test_testcase():
	assert "abc".upper() == "ABC"
	pass

if __name__ == "__main__"
	nose.runmodule

- Pytest

  • Pytest是Python的第三方单元测试库,需要在使用前提前进行下载安装:pip install pytest
  • Pytest兼容Unittest框架,可以直接运行Unittest
  • 支持简单的assert语句,能更加丰富
  • 自动识别测试模块和测试函数
  • 兼容unittest和nose测试集
  • 支持python3
import pytest

def test_testcase():
	assert "abc" .upper() == "ABC"

if __name__ == "__main__"
	pytest.main()

Pytest和Unittest区别

- 用例编写规则

  1. Pytest需要在使用前先下载,Unittest不需要下载可直接使用
  2. Pytest和Unittest测试方法必须以"test_"开头
  3. Pytest测试类命名以“Test”开头
  4. Pytest测试文件名必须以"test_“开头或者”_test"结尾
  5. Pytest可直接执行Unittest框架
  6. Unittest测试类必须要有unittest.main()方法
  7. Unittest测试类必须继承unittest.TestCase

- 断言

  1. Unittest:assertEqual、assertln、assertTrue、assertFalse
  2. Pytest: 可直接使用assert表达式

- 测试报告

  1. Unittest:使用HTMLTest RunnerNew库
  2. Pytest: pytest-HTML 、allure插件

- 失败重跑

  1. Unittest无此功能
  2. Pytest可使用Pytest-rerunfailures插件

- 参数化

  1. Unittest:需依赖ddt库
  2. Pytest:可直接使用mark装饰器

- 用例执行

  1. Unitest可通过testsuit执行部分用例
  2. Pytest可通过@pytest.mark标记类和方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值