我希望能够从 Visual Studio Code 中运行和调试 Django 项目的单元测试。我是一名经验丰富的开发人员,但对 Django 和 Visual Studio Code 都相当陌生。
问题的关键在于测试在 Visual Studio Code 中是不可发现的,或者如果它们是可发现的,我在运行它们时会收到 ConnectionHandler 异常。我在下面提供了这两种情况的详细信息。
对于这个问题的长度,我深表歉意,但我认为我应该列出我尝试过但未成功的问题的许多解决方案。我还认为将所有这些放在一个地方可能会很有用,而不是让它们分散在 StackOverflow 和 Internet 的其他地方。
迄今为止最好的解决方案
我发现的最佳解决方案是Visual Studio Code 下的 Django 应用单元测试问题。它涉及将这四行放入一个 __init__.py 文件中:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_app_project.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud)
这适用于我的简单教程项目,如下所述,但在实际应用程序中,一些测试失败。看起来 Django 没有与其他测试隔离地运行数据库模型,或者没有调用测试的 tearDown( ) 方法。此外,不清楚将这些行放在哪个 __init__.py 文件中。最后,这个解决方案会导致从命令行运行时单元测试失败。
尝试过的其他解决方案
运行 django 测试时如何修复“TypeError:'ConnectionHandler' 类型的参数不可迭代”中的 StackOverflow 问题?似乎与我的问题的 ConnectionHandler 方面相似,但没有人在那里提出解决方案。
我找到了一个应该解决这些问题的 Visual Studio Code 扩展:Django Test Runner ( https://marketplace.visualstudio.com/items?itemName=Pachwenko.django-test-runner )。它目前在https://github.com/Pachwenko/VSCode-Django-Test-Runner/issues/5 上有一个问题,它描述了我在扩展中遇到的问题。 …