作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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
的调用。
我知道我可以在 plus_one
中调用 pdb.set_trace()
,但是有没有更方便的方法(可能是 pytest 的一些标志组合)?
最佳答案
不知道 pytest 的标志,但您可以在对 plus_one
的调用上方粘贴一个 assert False
并让 pytest 停在那里并将您放入调试器。
更好的方法是将可能产生错误的代码提取到一个小的驱动程序中,然后直接pdb
。
关于python - 有没有办法在上次失败的那些 pytests 上调用 pdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48515806/
我是一名优秀的程序员,十分优秀!