Eli*_*les 11 python pudb python-unittest
我试图通过pudb调试器调试一些单元测试时遇到一些麻烦.
测试运行良好的python,但我没有运气与他们运行pudb.
我解决了这个问题,得到以下示例代码:
class Math:
def pow(self, x, y):
return x ** y
import unittest
class MathTest(unittest.TestCase):
def testPow23(self):
self.assertEquals(8, Math().pow(2, 3))
def testPow24(self):
self.assertEquals(16, Math().pow(2, 4))
if __name__ == '__main__':
unittest.main()
Run Code Online (Sandbox Code Playgroud)
测试运行良好:
$ python amodule.py
.
----------------------------------------------------------------------
Ran 2 tests in 0.001s
OK
Run Code Online (Sandbox Code Playgroud)
但如果通过pudb运行,它会给我输出:
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
Run Code Online (Sandbox Code Playgroud)
我试着使用运行pudb amodule.py,也有python -m pudb.run amodule.py,但它没有什么区别-没有测试是在一个或另一种方式运行.
我应该做一些与使用pudb调试单元测试不同的东西吗?
尝试在代码中的有用行上放置断点:
from pudb import set_trace; set_trace()
Run Code Online (Sandbox Code Playgroud)
你试图推出它的方式可能与测试发现干扰和/或不与运行脚本 __name__的'__main__'.