簡體   English   中英

在 VSCode 測試資源管理器中運行 Django 測試?

[英]Run Django tests in the VSCode Test explorer?

我正在嘗試在 VSCode 測試資源管理器中運行 Django 單元測試,此外,我希望 CodeLens 的“運行測試”按鈕出現在每個測試上方。 在此處輸入圖像描述但是,在測試資源管理器中,當我按下“播放”按鈕時,會顯示錯誤:“沒有運行測試”沒有運行測試

我的目錄結構是:

  • 工作區_文件夾
    • 設置.json
    • 回購
      • python_module_1
        • 子模塊
          • 測試
            • test_a.py

我正在使用單元測試框架。 我的 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,
}

當我按下綠色的“播放”按鈕時,測試資源管理器播放按鈕Python 測試日志輸出顯示消息“由我啟動的線程中的未處理異常”我正在使用 pipenv 虛擬環境。 如何在 VSCode 測試資源管理器中運行這些 Django 測試?

我看到使用 pyTest 是 unittest 的替代品,如何輕松設置它作為替代品?

請考慮以下檢查:

  1. 你的測試目錄中應該有__init__.py

  2. 在測試配置的 vscode 中使用 pytest 框架

  3. 使用: pip install pytest-django

  4. 使用以下內容在根目錄中復制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

現在它應該可以按您的意願工作了。 你可以看到這個stackoverflow鏈接

我也一直在研究這個。 問題是 python unittest pytest 和 nose 不能替代 Django 測試,因為它們無法加載 Django 測試所做的一切。

Django Test Runner 可能適合您: https ://marketplace.visualstudio.com/items?itemName=Pachwenko.django-test-runner

- 我仍然遇到問題,因為我的項目根目錄不直接包含我的應用程序,但判斷你的項目結構可能對你有用。

這是讓 Django 測試在完整的 vscode 支持下運行的通用方法

  1. 配置python測試
    1. 選擇單元測試
    2. 根目錄
    3. test*.py
  2. 然后每個測試用例將需要如下所示:
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 在設置測試類之前運行,並將設置您的 django 項目。 設置完成后,您可以在測試方法中導入函數。 如果您嘗試在腳本頂部導入模型/視圖,則會引發異常,因為 django 未設置。 如果您有任何其他需要運行以使 django 項目工作的預初始化,請在setUpClass中運行它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM