我尝试在我的 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 的侧边栏来运行我的测试,但它找不到它们。
这让我很困惑,因为在我的项目中如果我运行以下命令:
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,以便我可以在那里运行测试?
尝试不成功的解决方案:
从 VSCode 1.93 开始,Python 扩展还支持发现和运行 Django 单元测试。只需几个额外的设置步骤,您就可以发现您的 Django 测试:
"python.testing.unittestEnabled": true
文件。MANAGE_PY_PATH
作为环境变量:创建 .env 文件
在您项目的根部。MANAGE_PY_PATH='<path-to-manage.py>'
添加到 .env 文件中,
将 <path-to-manage.py>
替换为您的应用程序的路径
管理.py 文件。"python.testing.unittestArgs": []
中
根据需要修改 settings.json 文件,并删除任何参数
与 Django 不兼容。PS:如果您的 .venv 文件不在项目根目录下,请将
"python.envFile": "${workspaceFolder}/<path-to-.env>"
添加到您的 settings.json
以确保发现所有环境变量。