我有以下问题:
我正在做一些单元测试,但问题是我无法使用调试器我尝试使用断点单击“调试名称文件”,但它不起作用。或者,我尝试使用以下装饰器
@override_settings(DEBUG=True)
,但再次使用这种方式没有结果。
我准确地说,只有在单元测试中我才会遇到此类问题。代码的其他部分运行良好。
你能帮我一下吗?
PS:为了进行单元测试,我从 django.test 导入了 TestCase。
非常感谢!
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
假设您已经有了运行测试的命令行方式,您可以通过告诉它运行
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中创建运行配置。给它任何你想要的名称(例如:“运行单元测试”),然后添加:
python manage.py
之后输入命令的任何内容,因此在上面我使用的示例中,它将是 test app.tests.<module>.<file>
其他字段应自动填充,但以防万一,请确保“工作目录”显示您的项目根文件夹,并选择“将内容根添加到 PYTHONPATH”和“将源根添加到 PYTHONPATH”。
当然,在此示例中,您可以将“[module]”替换为您想要在
tests
文件夹中运行的任何子文件夹,或者如果不存在子文件夹,则将其完全删除。还将“[文件]”替换为您要运行的测试文件。
只需保存此配置,您就可以使用它来运行或调试您的测试,只需选择您创建的运行配置,然后单击您需要的按钮: