Pytest,一个新一代的自动化测试框架

测试框架?这是个啥玩意?

写代码就跟盖房子一样,你说能一口气盖完就保证没问题吗?

测试框架就是咱们写代码时的"验房工具",帮你检查代码有没有问题。

要说Python里的测试框架,Pytest就是最近几年特别火的一个。

Pytest有啥特别的?

说实话,以前写测试代码可费劲了,得写特别多的setUp、tearDown这些东西。

用了Pytest后,写测试代码简单得不得了,就跟写普通的Python函数一样。

来看个简单的例子:

  1. def test_hello():

  2.     assert "hello" + "world" == "helloworld"

就这么简单,是不是觉得也太容易了?

厉害的还在后头呢

Pytest的fixture功能绝对是它的王牌,就像是你的百宝箱,需要啥工具直接拿出来用。

  1. @pytest.fixture

  2. def db_connection():

  3.     # 连接数据库

  4.     db = connect_to_db()

  5.     yield db

  6.     # 用完自动断开连接

  7.     db.close()

有了这个fixture,测试数据库操作简直不要太爽。

你再也不用担心忘记关闭数据库连接了,Pytest都帮你搞定

参数化测试,一个顶多个

以前测试不同的数据,得复制好多遍测试代码。

现在好了,Pytest提供了参数化测试:

  1. @pytest.mark.parametrize("test_input,expected", [

  2.     ("3+5", 8),

  3.     ("2+4", 6),

  4.     ("6+9", 15),

  5. ])

  6. def test_eval(test_input, expected):

  7.     assert eval(test_input) == expected

一个测试函数搞定所有测试数据,代码量直接砍掉一大半

测试报告也要整得漂亮

Pytest的测试报告清晰明了,一眼就能看出哪些测试通过了,哪些没过

失败的测试还会给你详细的错误信息,告诉你具体哪里出了问题。

要是想要更漂亮的报告,还能装个html插件:

pytest --html=report.html

分分钟生成一个精美的网页版测试报告。

插件生态系统,想要啥有啥

Pytest的插件系统堪称豪华套餐,啥功能都有现成的。

想测试异步代码?装个pytest-asyncio。

想做接口测试?pytest-requests随便挑。

想看测试覆盖率?pytest-cov分分钟搞定。

调试功能也是没说的

写测试时遇到问题,Pytest的调试功能特别给力

只要在代码里加个pytest.set_trace()

  1. def test_something():

  2.     x = "hello"

  3.     pytest.set_trace()

  4.     assert x == "hello"

立马进入调试模式,想看啥看啥。

最后说两句

Pytest是真的好用,但也不是说所有项目都非用它不可

小项目用Python自带的unittest也够了。

不过要是你的项目开始变大,测试案例越来越多,果断换Pytest准没错

记住一点,测试不是可有可无的,它是保证代码质量的护城河

用好Pytest,让你的代码质量蹭蹭往上涨!

最后作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些软件测试的学习资源,希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值