【问题标题】:Python Nosetests and Sniffer: Viewing leftover statePython Nosetests 和 Sniffer:查看剩余状态
【发布时间】:2014-08-10 23:05:48
【问题描述】:

我正在开发一个使用 Nosetests 和 Sniffer 自动测试仪的项目,但我遇到了一个奇怪的 Sniffer 事件。当我第一次运行 Sniffer 时,我的一个路由测试将按预期通过,但在其后每次运行时(作为保存文件的结果),该测试将失败生成一个

OverflowError: Maximum recursion level reached.

我的项目使用 Pandas,它似乎在 to_json 函数中被炸毁,但由于它仅在 Sniffer 进行第二次运行时发生,我觉得问题不在于 Pandas,而在于 Sniffer。通过nosetests 命令运行Nose 时,我无法重现错误,这更能证明问题出在自动测试仪上。

有没有调试此类问题的好方法?似乎 Sniffer 第一次运行时有一些剩余状态,这在第二次运行时会出错,但由于我不太确定如何调试它,所以我不能确定。有任何想法吗?如有必要,我可以提供代码,但这更像是一个一般的我该如何调试这类问题。

【问题讨论】:

    标签: python nose sniffer


    【解决方案1】:

    尝试使用--pdb 运行您的nosetests,它将在OverflowError 上为您提供调试器提示,您将能够看到调用的堆栈跟踪。

    【讨论】:

    • 我试过了,但在独立运行nosetests 时,我永远无法让它命中OverflowError。我很确定问题出在嗅探器的另一个原因。
    • 如果您设法从 python shell 开始您的测试,您可以使用import pdb;pdb.pm() 进行事后调试。您还可以使用pdb.set_trace() 在故障点注入断点
    猜你喜欢
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多