在VSCode测试资源管理器中运行Django测试?

bq3bfh9z  于 2023-01-10  发布在  Go
关注(0)|答案(3)|浏览(186)

我正在尝试在VSCode测试资源管理器中运行Django单元测试,同时,我希望CodeLens的“运行测试”按钮出现在每个测试的上方。

但是,在测试资源管理器中,当我按下“播放”按钮时,显示错误:“未运行测试”No Tests were Ran
我的目录结构是:

  • 工作区_文件夹
  • settings.json
  • 回购
  • Python模块1
  • 子模块
  • 测验
  • 试验_a.py

我使用的是unittest框架,我的Settings.json如下所示:

{
    "python.pythonPath": "/Users/nbonilla/.local/share/virtualenvs/koku-iTLe243o/bin/python",
    "python.testing.unittestArgs": [
        "-v",
        "-s",
        "${workspaceFolder}/python_module_1/sub_module/"
    ],
    "python.testing.pytestEnabled": false,
    "python.testing.nosetestsEnabled": false,
    "python.testing.unittestEnabled": true,
}

当我按下绿色的“Play”按钮时Test Explorer Play Button Python测试日志输出显示消息“Unhandled exception in thread started by”Unhandled Exception in thread started by我正在使用pipenv虚拟环境。如何在VSCode测试资源管理器中运行这些Django测试?
我看到使用pyTest是unittest的一种替代方法,如何轻松地将其设置为替代方法?

qcbq4gxm

qcbq4gxm1#

请考虑以下检查:
1.测试目录中应该有__init__.py
1.在vscode中使用pytest框架进行测试配置
1.用途:pip install pytest-django
1.在根目录中复制pytest.ini,内容如下:

# -- FILE: pytest.ini (or tox.ini)
[pytest]
DJANGO_SETTINGS_MODULE = <your-web-project-name>.settings (like mysite.settings)
# -- recommended but optional:
python_files = tests.py test_*.py *_tests.py

现在,它应该按照您的意愿工作了。

vnzz0bqm

vnzz0bqm2#

我也一直在研究这个问题,问题是python单元测试pytest和nose不能替代Django测试,因为它们不能加载Django测试所做的一切。
Django Test Runner可能适合您:https://marketplace.visualstudio.com/items?itemName=Pachwenko.django-test-runner
--我在这方面仍然遇到麻烦,因为我的项目根目录不直接包含我的应用程序,但根据您的项目结构进行判断可能对您有用。

goucqfw6

goucqfw63#

下面是让Django测试在完整vscode支持下运行的通用方法
1.配置python测试
1.选择单元测试
1.根目录
1.第一个月
1.然后,每个测试用例需要如下所示:

from django.test import TestCase

class views(TestCase):

    @classmethod
    def setUpClass(cls):
        import django
        django.setup()

    def test_something(self,):
        from user.model import something
        ...

要导入的任何函数**都必须在测试用例中导入setUpClass在test类被设置之前运行,它将设置你的django项目。一旦它被设置好,你就可以在test方法中导入函数。如果你试图在脚本的顶部导入模型/视图,它将引发一个异常,因为django没有设置。如果你有任何其他的预初始化需要运行你的django项目工作,运行它在setUpClass

相关问题