VScode unittest测试django应用的发现设置

ig9co6j1  于 2023-05-30  发布在  Go
关注(0)|答案(1)|浏览(163)

我有一个Django应用程序,里面有一些单元测试。我想在VScode v.1.59.1中运行\调试它们。
我的./vscode/settings.json看起来像这样:

{
    "python.testing.unittestArgs": [
        "-v",
        "-s",
        "./routes/tests",
        "-p",
        "test*.py"
    ],
    "python.testing.pytestEnabled": false,
    "python.testing.nosetestsEnabled": false,
    "python.testing.unittestEnabled": true,
}

当我尝试运行\discover测试时,我有以下输出:

ImportError: Failed to import test module: test_utils
...
django.core.exceptions.ImproperlyConfigured: Requested setting REST_FRAMEWORK, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

当我尝试使用命令以常规的django方式运行测试时:

python manage.py test

测试正常
请帮助我设置我的VScode来运行django unittests。
P.S:我不能安装pytest,这应该没有安装任何新模块。

roejwanj

roejwanj1#

我也为此而挣扎。它还导致调试面板根本无法发现任何测试。
与使用./ www.example.com运行时不同manage.py在开始测试时,test vscode尚未初始化您的应用。
我所做的是加载设置并执行setup(),然后加载其余部分:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.testing")

from django import setup

setup()

from django.contrib.auth import get_user_model
<other imports>

<your tests>

相关问题