You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pytest中setup_function与teardown_function未逐用例调用问题

问题原因及解决办法

1. 钩子函数名拼写错误

你的teardown_function函数名写错了,代码里写成了teradown_function(少了字母w),pytest无法识别这个错误命名的钩子函数,所以不会执行它。

2. pytest默认捕获输出导致打印内容不可见

pytest默认会捕获测试过程中的print输出,即便setup_function正常执行,你也看不到打印的内容。需要在执行命令时添加-s参数禁用输出捕获:

python -m pytest -v -s

3. 钩子函数参数(可选优化)

setup_function和teardown_function可以接受一个参数(代表当前执行的测试函数),但如果不需要用到该参数,可以直接省略,简化为:

def setup_function():
    print("set up is called")

def teardown_function():
    print("teardown is called..")

修正后执行效果

修正函数名并使用python -m pytest -v -s命令执行后,每个运行的测试用例(包括参数化的test_1的两个实例)执行前后都会打印setup和teardown的内容,被跳过的用例不会触发这两个钩子。

内容的提问来源于stack exchange,提问作者Shankar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 14:43:15