python - 使用 nosetests --pdb 选项设置断点

标签 python testing nose pdb

nosetests --pdb 让我在错误或失败时停下来,但这对我的需要来说太晚了。在执行期间单步执行代码有助于我调试问题所在。

但是,nosetests 很有帮助,因为它们允许依赖于相对导入的测试(即包中的测试)。

如何在测试执行前设置断点? 目前我正在使用:

python -m pdb /path/to/my/nosetests testfile.py

这个解决方案是不够的。 Nosetests 会干扰 pdb 输出,并且我的键盘控件(例如箭头键)已损坏。

使用导入 pdb; pdb.set_trace() 似乎是个好主意,但是 nosetests 阻止了我对 pdb 控制台的访问。

最佳答案

比记住使用 -s 更好的是使用 Nose 附带的 set_trace 变体。添加

from nose.tools import set_trace; set_trace()

无论您想在哪里闯入调试器。标准输入/输出重定向将为您处理。我遇到的唯一奇怪的副作用是在 Nose 运行期间调试时无法从 pdb 中重新启动代码(使用 run)。

关于python - 使用 nosetests --pdb 选项设置断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950637/

相关文章:

python - 如何加载测试 Django API?

python - 如何使用 BeautifulSoup 和请求抓取受密码保护的网站

ios - UI 测试 Mach-O 链接器错误

python Nose : Log tests results to a file with Multiprocess Plugin

python - 用字符串替换列表元素中的列表元素

python - 使用条件对数组进行排序的有效方法

python - 如何每 4 秒更新一次 tkinter 窗口?

sql - 如何在 SQL Server 2012 集群上创建尽可能快的数据库,同时牺牲任何持久性

python - 在 python nose-parameterized 中只跳过参数化列表中的一个参数

python - 在相同的上下文管理器中执行多个测试