首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Visual代码中调试python单元测试?

如何在Visual代码中调试python单元测试?
EN

Stack Overflow用户
提问于 2022-07-15 10:28:07
回答 1查看 366关注 0票数 0

我有以下目录结构(一位朋友在他检查时把它放在github上)

代码语言:javascript
复制
- code      
  - elements
    __init__.py
    type_of_car.py
  __init__.py
  car.py
- tests
  __init__.py
  test_car.py

这些是我的launch.json设置:

代码语言:javascript
复制
{
    "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测试设置如下:

代码语言:javascript
复制
{
    "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

此外,我还必须使用代码调试我的测试:

  1. 我导航到test_engine.py并打开它
  2. 将“运行和调试”切换到Python: Debug Tests配置
  3. 按F5以运行调试。

这会失败,因为报告了No module named 'code.car'; 'code' is not a package

我如何解决模块-地狱,以便我可以运行测试也从VSCode/调试器?(这件事确实花了我几个小时。任何暗示都会受到赞赏。)

有人知道VS代码启动程序在调用模块时认为它是根吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-18 09:02:17

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

我只粘贴了修改过的代码。

car.py**:**

代码语言:javascript
复制
# your code
from code.elements.type_of_car import TypeOfCar
代码语言:javascript
复制
# my code
from elements.type_of_car import TypeOfCar

test_car.py**:**

代码语言:javascript
复制
# your code
import unittest
from code.car import Car
from random import randint

from code.elements.type_of_car import TypeOfCar
代码语言:javascript
复制
# 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**:**的结果

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72992588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档