测试框架?这是个啥玩意?
写代码就跟盖房子一样,你说能一口气盖完就保证没问题吗?
测试框架就是咱们写代码时的"验房工具",帮你检查代码有没有问题。
要说Python里的测试框架,Pytest就是最近几年特别火的一个。
Pytest有啥特别的?
说实话,以前写测试代码可费劲了,得写特别多的setUp、tearDown这些东西。
用了Pytest后,写测试代码简单得不得了,就跟写普通的Python函数一样。
来看个简单的例子:
-
def test_hello(): -
assert "hello" + "world" == "helloworld"
就这么简单,是不是觉得也太容易了?
厉害的还在后头呢
Pytest的fixture功能绝对是它的王牌,就像是你的百宝箱,需要啥工具直接拿出来用。
-
@pytest.fixture -
def db_connection(): -
# 连接数据库 -
db = connect_to_db() -
yield db -
# 用完自动断开连接 -
db.close()
有了这个fixture,测试数据库操作简直不要太爽。
你再也不用担心忘记关闭数据库连接了,Pytest都帮你搞定。
参数化测试,一个顶多个
以前测试不同的数据,得复制好多遍测试代码。
现在好了,Pytest提供了参数化测试:
-
@pytest.mark.parametrize("test_input,expected", [ -
("3+5", 8), -
("2+4", 6), -
("6+9", 15), -
]) -
def test_eval(test_input, expected): -
assert eval(test_input) == expected
一个测试函数搞定所有测试数据,代码量直接砍掉一大半!
测试报告也要整得漂亮
Pytest的测试报告清晰明了,一眼就能看出哪些测试通过了,哪些没过。
失败的测试还会给你详细的错误信息,告诉你具体哪里出了问题。
要是想要更漂亮的报告,还能装个html插件:
pytest --html=report.html
分分钟生成一个精美的网页版测试报告。
插件生态系统,想要啥有啥
Pytest的插件系统堪称豪华套餐,啥功能都有现成的。
想测试异步代码?装个pytest-asyncio。
想做接口测试?pytest-requests随便挑。
想看测试覆盖率?pytest-cov分分钟搞定。
调试功能也是没说的
写测试时遇到问题,Pytest的调试功能特别给力。
只要在代码里加个pytest.set_trace():
-
def test_something(): -
x = "hello" -
pytest.set_trace() -
assert x == "hello"
立马进入调试模式,想看啥看啥。
最后说两句
Pytest是真的好用,但也不是说所有项目都非用它不可。
小项目用Python自带的unittest也够了。
不过要是你的项目开始变大,测试案例越来越多,果断换Pytest准没错。
记住一点,测试不是可有可无的,它是保证代码质量的护城河。
用好Pytest,让你的代码质量蹭蹭往上涨!
最后作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些软件测试的学习资源,希望能给你前进的路上带来帮助。

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

785

被折叠的 条评论
为什么被折叠?



