Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何确保调试配置中没有pdb调用?_Python_Django_Git_Pdb - Fatal编程技术网

Python 如何确保调试配置中没有pdb调用?

Python 如何确保调试配置中没有pdb调用?,python,django,git,pdb,Python,Django,Git,Pdb,您建议如何消除生产软件上的pdb呼叫? 就我而言,我正在开发一个django网站 我不知道我是否应该: 来自settings.py的Monkey patch pdb(取决于调试布尔值) 为我们的项目制作一个pdb包装器,如果DEBUG=True,它将公开set_trace或打印基本日志 在git钩子上释放制动点。。。(如果你认为这是最好的主意,你会怎么做?) 最好的选择是拥有一个广泛的测试套件,并在投入生产之前运行测试。无关的pdb断点将阻止测试通过 如果您不能做到这一点,那么选项2是最好的:

您建议如何消除生产软件上的pdb呼叫? 就我而言,我正在开发一个django网站

我不知道我是否应该:

  • 来自settings.py的Monkey patch pdb(取决于调试布尔值)
  • 为我们的项目制作一个pdb包装器,如果DEBUG=True,它将公开set_trace或打印基本日志
  • 在git钩子上释放制动点。。。(如果你认为这是最好的主意,你会怎么做?)

    • 最好的选择是拥有一个广泛的测试套件,并在投入生产之前运行测试。无关的
      pdb
      断点将阻止测试通过


      如果您不能做到这一点,那么选项2是最好的:编写一个实用程序来进入调试器,并使其对设置的状态敏感。您仍然需要解决如何确保人们使用包装而不是原始的
      pdb
      调用的问题。

      第三个问题。您必须强制执行一些提交规则。例如,在提交之前运行一系列测试,等等。这样,开发人员就有了一种简单的方法来检查pdb中断是否仍然存在。如果有人犯了一套错误,他必须为团队的其他成员烤一块蛋糕

      这在我的公司很管用:-)


      编辑:您可以将此方法作为CDD(蛋糕驱动开发)呈现给上司

      理想情况下,您不应该首先包含调试代码。您可以使用一个包装器来设置断点并调用主程序进行调试,这样主程序就根本不包含实际的
      set\u trace()
      调用

      # foo.py
      print "hello"
      print "goodbye"
      

      例如:

      [~]$ python foo.py hello goodbye [~]$ python foo.py > <string>(1)<module>() (Pdb) continue hello > /home/dbornside/foo.py(1)<module>() -> print "goodbye" (Pdb) continue goodbye [~]$ [~]$python foo.py 你好 再见 [~]$python foo.py > (1)() (Pdb)继续 你好 >/home/dbornide/foo.py(1)() ->打印“再见” (Pdb)继续 再见 [~]$
      我可以补充一点,在我的团队中,蛋糕必须是柠檬派。我建议你也这么做。我喜欢这个概念。。。我真的需要向我们的团队提出建议。也许我会忽略把蛋糕变成柠檬派。。。 [~]$ python foo.py hello goodbye [~]$ python foo.py > <string>(1)<module>() (Pdb) continue hello > /home/dbornside/foo.py(1)<module>() -> print "goodbye" (Pdb) continue goodbye [~]$