VSCode - django项目的凌乱单元测试配置

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

我使用的是python 3.6.5,django 2.0.3和VSCode 1.21.1。

在我的项目中,我在以下位置test_*.py有几个测试文件(app/tests/)。我可以使用cmd:python manage.py test app.tests简单地运行它们。我想使用VSCode测试调试,所以我决定配置内置的unittest处理程序。

首先,我编辑了工作区settings.json文件,添加以下代码:

"python.unitTest.unittestEnabled": true,
"python.unitTest.unittestArgs": [
    "-s",
    "app.tests",
    "test_*.py",

事实证明,__init__.pyapp文件夹都需要tests文件才能检测包含测试的文件。我最近切换到Python 3,真的很高兴__init__.py文件不再是一个要求(PEP420)。但是,我必须添加它们才能使测试检测工作。

然后我发现没有调用django.setup()并且首先设置DJANGO_SETTINGS_MODULE我仍然无法运行我的测试。因此,我必须在每个测试文件的开头添加以下代码:

import django
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MyAwesomeWebApp.settings')
django.setup()

是真的需要还是在VSCode中配置unittest还有其他方法吗?

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

我遇到过同样的问题。所以,我已经设法在VS中运行django测试,并在调试配置中使用下一个配置。

{
    "name": "Python: Django Test",
    "type": "python",
    "request": "launch",
    "stopOnEntry": true,
    "pythonPath": "${config:python.pythonPath}",
    "program": "${workspaceFolder}/manage.py",
    "cwd": "${workspaceRoot}",
    "args": [
    "test",
     ],
    "env": {},
    "envFile": "${workspaceFolder}/.env",
},

我可以使用断点并探索测试变量状态。所以我希望它会帮助你或任何人。

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