有没有办法在上次失败的pytests上调用pdb

时间:2018-01-30 07:11:05

标签: python testing pytest

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的一些标志组合)吗?

1 个答案:

答案 0 :(得分:1)

不知道有关pytest的标志,但你可以在调用res.body()之上粘贴assert False并让pytest停在那里并让你进入调试器。

更好的方法是将可以产生错误的代码提取到一个小的驱动程序中并直接plus_one