pytest --lf --pdb
并不能完全按照我的意愿行事,因为它在我测试的函数已经产生了错误的行为后启动了调试器。
例如,假设我有一个名为test_project.py
的文件,其中包含以下内容:
def test_plus_one():
v = plus_one(9)
assert v == 10
运行pytest
后,我注意到此测试失败,因为plus_one(9)
返回11
而不是10
,因此我运行pytest --lf --pdb
。但是,这会在assert语句失败后调用pdb。我真正想做的是在前一行v = plus_one(9)
上调用pdb,以便进入对函数plus_one
的调用。
我知道我可以在pdb.set_trace()
内调用plus_one
,但是有一种更方便的方式(可能是pytest的一些标志组合)吗?
答案 0 :(得分:1)
不知道有关pytest的标志,但你可以在调用res.body()
之上粘贴assert False
并让pytest停在那里并让你进入调试器。
更好的方法是将可以产生错误的代码提取到一个小的驱动程序中并直接plus_one
。