使用 PyCharm 单步调试 Django 单元测试例

写在前面

众所周知,编写 Django 后端程序时,可以使用 python manage.py test 来运行单元测试。也可以通过类似 python manage.py test stock.tests.test_api.APITestCase.test_account_curd 的指令,来运行单个测试例。其中,stock.tests.test_api.APITestCase.test_account_curd 是要运行的某个测试例,遵循 python 包引用原则。

如果某个测试例运行失败了,可以通过单步调试来解决问题,PyCharm Professional 版本提供了这样的功能,具体可查阅官方文档。与 Django 深度整合是 PyCharm Professional 版本的卖点之一。

问题来了,能否通过 PyCharm Community 版本来进行单步调试呢?答案是肯定的。本文介绍一个配置方法,可以使用 PyCharm Community 版本来单步调试 Django 测试例以及应用程序。

添加 Run/Debug 配置项

原理上,利用 PyCharm 调试功能,把 Django 的入口文件 manage.py 作为调试对象。这样就可以调试 Django 应用程序了。

通过菜单 Run -> Edit Configuration 来添加一个名称为 “manage.py” 的 Run/Debug 配置项,如下图。

Run/Debug 配置项

  • “name” 填写 manage.py 或者其他容易记住的名字。
  • “script path” 填 manage.py ,这个用来指定调试的对象。即 PyCharm 在开始调试时,实际上运行的是这个文件。
  • “parameters” 填 test stock.tests.test_api,这个可以根据实际情况修改,比如改成要单步调试的某个测试例。或者,改成 runserver 则直接用来单步调试 Django 应用程序。
  • “working directory” 填 Django 项目的根目录,如 /Users/kamidox/work/weapp-server

进行单步调试

配置完成后,就可以在合理的地方设置断点,然后在 PyCharm Community 版本里,选择菜单 Run -> Debug 'manage.py' 来启动单步调试。其中 manage.py 就是我们新建的 Run/Debug 配置项的名称。如果按照上述示例的配置,启动调试后,实际上,就相当于你在 shell 命令行里运行 python manage.py test stock.tests.test_api 命令,唯一不同的是,此时处于调试模式,代码会在断点处停下来。

接下来,就可以利用 PyCharm 的调试功能进行单步调试了。

Happy Coding ~~


Post by Joey Huang under tools on 2020-08-19(Wednesday) 21:23. Tags: pycharm, django, python,


Powered by Pelican and Zurb Foundation. Theme by Kenton Hamaluik.