PDB在验尸模式下重新运行功能时如何中断

问题描述

我正在尝试调试一些随机单元测试,并且由于pytest标志而导致命中失败的断言时,--pdb将我放到pdb提示符下。但是,我想设置一个断点并重新运行该函数,以确定出了什么问题。我已经尝试过显而易见的(b 1234 RET tested_func('a','b','c')),但从未命中过断点,并且提示返回了。我也尝试过debug tested_func('a','c'),但这只成功了'tested_func not defined'

要复制:

collected 1 item                                                                                                                                                                                                                             

under_test.py F                                                                                                                                                                                                                        [100%]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> traceback >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

self = <under_test.TestFunc testMethod=test_func>

    def test_func(self):
            r = func('a','c')
>           assert r == 'c'
E           AssertionError: assert 'a' == 'c'
E             - a
E             + c

under_test.py:7: AssertionError
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PDB >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> /home/anthony/work/IMG/brd/tst_so/under_test.py(7)test_func()
-> assert r == 'c'
(Pdb) func('a','c')
'a'
(Pdb) list
  2     import unittest
  3     
  4     class TestFunc(unittest.TestCase):
  5             def test_func(self):
  6                     r = func('a','c')
  7  ->                 assert r == 'c'
  8     
  9     def func(c1,c2,c3):
 10             irrelevant = c3 + c1 + c2
 11             return c1
 12     
(Pdb) b 10
Breakpoint 1 at /home/anthony/work/IMG/brd/tst_so/under_test.py:10
(Pdb) func('a','c')
'a'
(Pdb) debug 'func("a","b","c")'
ENTERING RECURSIVE DEBUGGER
> <string>(1)<module>()
((Pdb)) s
--Return--
> <string>(1)<module>()->None
((Pdb)) s
> /usr/lib/python2.7/bdb.py(404)run()
-> self.quitting = 1
((Pdb)) s
LEAVING RECURSIVE DEBUGGER
> /usr/lib/python2.7/cmd.py(163)postcmd()
-> return stop
(Pdb) debug func("a","c")
ENTERING RECURSIVE DEBUGGER
> <string>(1)<module>()
((Pdb)) s
NameError: "name 'func' is not defined"
> <string>(1)<module>()
((Pdb)) s
--Return--
> <string>(1)<module>()->None
((Pdb)) s
NameError: "name 'func' is not defined"
> /usr/lib/python2.7/bdb.py(400)run()
-> exec cmd in globals,locals
((Pdb)) 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...