如何在 Pycharm 中使用带有单元测试的调试器?

问题描述 投票:0回答:3

我有以下问题:

我正在做一些单元测试,但问题是我无法使用调试器我尝试使用断点单击“调试名称文件”,但它不起作用。或者,我尝试使用以下装饰器

@override_settings(DEBUG=True)
,但再次使用这种方式没有结果。

我准确地说,只有在单元测试中我才会遇到此类问题。代码的其他部分运行良好。

你能帮我一下吗?

PS:为了进行单元测试,我从 django.test 导入了 TestCase。

非常感谢!

python django python-3.x debugging pycharm
3个回答
2
投票

我曾经在从命令行运行

python manage.py test
时遇到过与 PyCharm+Django 相同的问题。我通过创建新的测试配置解决了这个问题。

主要是需要填写“脚本路径”(manage.py的路径)和“参数”。

然后,使用该配置运行调试,并且 Django 测试中的断点将起作用。


0
投票

PyCharm 菜单:

运行/编辑配置/添加 Django 测试/添加目标和选项。

例如,这是从命令行到 GUI 字段的映射,

仅运行一种测试方法

./manage.py test --keepdb animals.tests.AnimalTestCase.test_animals_can_speak

目标:animals.tests.AnimalTestCase.test_animals_can_speak

选项:--keepdb

.

参考,https://www.jetbrains.com/help/pycharm/2020.1/run-debug-configuration-django-test.html


0
投票

假设您已经有了运行测试的命令行方式,您可以通过告诉它运行

manage.py
文件,然后添加所需的参数,轻松地将其带到 Pycharm 中的运行配置(这适用于 Pycharm 社区版)运行测试。

例如,假设您有一个 Django 根项目文件夹,其中包含一个应用程序文件夹,然后其中有一个“tests”子文件夹(“tests”甚至可以为每个测试类别包含更多子文件夹)。所以路径会是这样的:

root_project/app/tests
。我假设这个测试文件夹有一个
__init__.py
文件,而且如果“tests”中有子文件夹,它们也会有一个
__init__.py
。因此,运行这些测试的可行命令可能是
python manage.py test app.tests.<module>.<file>

使用此命令,您可以通过转到运行>编辑配置>(单击“+”)并选择Python(只是简单的“Python”,而不是“Python测试”)在Pycharm中创建运行配置。给它任何你想要的名称(例如:“运行单元测试”),然后添加:

  • “Script”字段:manage.py 文件的路径(例如:project_root/manage.py)
  • “参数”:在
    python manage.py
    之后输入命令的任何内容,因此在上面我使用的示例中,它将是
    test app.tests.<module>.<file>
  • “Python 解释器”:如果未自动选择,请选择您在通过命令运行测试时使用的相同解释器。例如,它可以是虚拟环境中的解释器。

其他字段应自动填充,但以防万一,请确保“工作目录”显示您的项目根文件夹,并选择“将内容根添加到 PYTHONPATH”和“将源根添加到 PYTHONPATH”。

当然,在此示例中,您可以将“[module]”替换为您想要在

tests
文件夹中运行的任何子文件夹,或者如果不存在子文件夹,则将其完全删除。还将“[文件]”替换为您要运行的测试文件。

只需保存此配置,您就可以使用它来运行或调试您的测试,只需选择您创建的运行配置,然后单击您需要的按钮:

© www.soinside.com 2019 - 2024. All rights reserved.