VSCode 未发现 Django 项目的 pytests

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

我尝试在我的 Django 项目中使用 VSCode 的测试侧边栏,但它无法找到 pytest 文件。

以下是我为创建此示例项目而运行的命令:

django-admin startproject LearningPytest

pip install django-pytest

然后我创建了两个文件:

pytest.ini
basic_tests.py
,所以我的文件夹结构如下。

DjangoPyTesting/
└───LearningPytest/
    ├───LearningPytest/
    │   ├───__init__.py
    │   ├───asgi.py
    │   ├───basic_tests.py
    │   ├───settings.py
    │   ├───urls.py
    │   ├───wsgi.py
    ├───manage.py
    └───pytest.ini

pytest.ini

[pytest]
DJANGO_SETTINGS_MODULE = LearningPytest.settings
python_files = tests.py test_*.py *_tests.py
python_classes = Test*
python_functions = test_*

basic_tests.py

class TestBasicMath:
    
    def setup_method(self, method):
        self.x = 2
        self.y = 3
    
    def test_addition(self):
        assert self.x + self.y == 5 

    def test_subtraction(self):
        assert self.y - self.x == 1

    def test_multiplication(self):
        assert self.x * self.y == 6

问题是,我想使用 VSCode 的侧边栏来运行我的测试,但它找不到它们。 VSCode showing no tests found

这让我很困惑,因为在我的项目中如果我运行以下命令:

DjangoPytesting\LearningPytest>pytest
运行成功

platform win32 -- Python 3.11.5, pytest-7.4.4, pluggy-1.3.0
rootdir: C:\Users\{me}\Desktop\DjangoPytesting\LearningPytest
configfile: pytest.ini
plugins: anyio-4.3.0, django-4.9.0
collected 3 items

LearningPytest\basic_tests.py ...platform win32 -- Python 3.11.5, pytest-7.4.4, pluggy-1.3.0
rootdir: C:\Users\{me}\Desktop\DjangoPytesting\LearningPytest
configfile: pytest.ini
plugins: anyio-4.3.0, django-4.9.0
collected 3 items

LearningPytest\basic_tests.py ... 3 passed in 0.02s

但是如果我尝试运行更高一级的 pytest,它找不到任何测试,我认为这可能与问题有关。

DjangoPytesting>pytest

platform win32 -- Python 3.11.5, pytest-7.4.4, pluggy-1.3.0
rootdir: C:\Users\{me}\Desktop\DjangoPytesting
plugins: anyio-4.3.0, django-4.9.0
collected 0 items 
no tests ran in 0.01s

如何让 VSCode 的侧边栏找到我的 pytest,以便我可以在那里运行测试?

尝试不成功的解决方案:

python django visual-studio-code pytest-django
1个回答
0
投票

从 VSCode 1.93 开始,Python 扩展还支持发现和运行 Django 单元测试。只需几个额外的设置步骤,您就可以发现您的 Django 测试:

  1. 在 settings.json 中设置
    "python.testing.unittestEnabled": true
    文件。
  2. 添加
    MANAGE_PY_PATH
    作为环境变量:创建 .env 文件 在您项目的根部。
  3. MANAGE_PY_PATH='<path-to-manage.py>'
    添加到 .env 文件中, 将
    <path-to-manage.py>
    替换为您的应用程序的路径 管理.py 文件。
  4. 将 Django 测试参数添加到
    "python.testing.unittestArgs": []
    中 根据需要修改 settings.json 文件,并删除任何参数 与 Django 不兼容。

PS:如果您的 .venv 文件不在项目根目录下,请将

"python.envFile": "${workspaceFolder}/<path-to-.env>"
添加到您的
settings.json
以确保发现所有环境变量。

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