簡體   English   中英

如何在 Visual Studio Code 中調試 python 單元測試?

[英]how to debug python unittests in Visual Studio Code?

我有以下目錄結構(一位朋友在檢查時非常友好地將其放在github上)

- code      
  - elements
    __init__.py
    type_of_car.py
  __init__.py
  car.py
- tests
  __init__.py
  test_car.py

這些是我的 launch.json 設置:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Debug Tests",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "purpose": ["debug-test"],
            "console": "integratedTerminal",
            "justMyCode": false
        },
        {
            "name": "Python: Module",
            "type": "python",
            "request": "launch",
            "module": "main",
            "justMyCode": false,
            "cwd": "${workspaceFolder}"
        }
    ]
}

VS Python 測試設置為:

{
    "python.testing.unittestArgs": [
        "-v",
        "-s",
        "./tests",
        "-p",
        "test_*.py"
    ],
    "python.testing.pytestEnabled": false,
    "python.testing.unittestEnabled": true,
    "python.testing.cwd": "${workspaceFolder}"
}

test_car.py 導入模塊——當然——code.car。 而且還有 code.car.type_of_car

當我從項目根目錄運行測試時,可以調用並通過測試。 py -m unittest tests.test_car.py

但是,我無法通過按 F5(請參閱 launch.json)配置來運行我的主代碼。 這失敗了,因為No module named 'code.car'; 'code' is not a package No module named 'code.car'; 'code' is not a package

此外,我還必須使用 Visual Studio Code 調試我的測試:

  1. 我導航到 test_engine.py 並打開它
  2. 將“運行和調試”切換到Python: Debug Tests配置
  3. 按 F5 運行調試。

這失敗了,因為No module named 'code.car'; 'code' is not a package No module named 'code.car'; 'code' is not a package

如何解決模塊地獄,以便我也可以從 VSCode/調試器運行測試? (這件事確實花了我幾個小時。任何提示都表示贊賞。)

有人在調用模塊時了解 VS Code 啟動器認為它的根目錄嗎?

您可以按如下方式修改car.pytest_car.py文件:

我只粘貼了修改后的代碼。

car.py

# your code
from code.elements.type_of_car import TypeOfCar
# my code
from elements.type_of_car import TypeOfCar

test_car.py

# your code
import unittest
from code.car import Car
from random import randint

from code.elements.type_of_car import TypeOfCar
# my code
import unittest

import sys
sys.path.append("./code")

from car import Car
from random import randint

from elements.type_of_car import TypeOfCar

調試Python: Debug Tests

在此處輸入圖像描述

暫無
暫無

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

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