You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code配置Python unittest单元测试报ModuleNotFoundError错误

问题根因
  • 报错本质是Python模块搜索路径sys.path未包含被测模块所在目录:VS Code执行unittest测试发现逻辑时,默认不会自动追加测试文件所在的子目录到模块搜索路径;PyCharm会自动识别项目源根并追加对应路径,因此同代码在PyCharm可正常运行,VS Code下触发ModuleNotFoundError: No module named 'run_command'。
解决方法

方案1:修改工作区配置(无代码侵入,推荐)

  1. 打开工作区下的.vscode/settings.json,调整unittest启动参数,同时配置环境文件路径:
{
    "python.testing.unittestArgs": [
        "-v",
        "-s",
        "./shared-scripts",
        "-p",
        "*test*.py",
        "-t",
        "./shared-scripts"
    ],
    "python.testing.pytestEnabled": false,
    "python.testing.unittestEnabled": true,
    "python.envFile": "${workspaceFolder}/.env"
}
  1. 在项目根目录新建.env文件,将源码目录加入PYTHONPATH:
PYTHONPATH=${workspaceFolder}/shared-scripts:${PYTHONPATH}
  1. 打开VS Code命令面板,执行Python: 刷新测试,等待测试资源管理器重新加载用例即可。

方案2:调整测试文件导入逻辑(兼容多环境)

如果不想修改全局配置,可在测试文件run_command_test.py的导入语句前,手动将当前文件所在目录加入搜索路径:

import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
import run_command
  • 该写法不依赖IDE的路径配置,在任意环境下执行测试都可正常找到同目录模块。

方案3:修改unittest搜索根目录(单目录场景适用)

如果所有被测模块和测试文件都存放在shared-scripts/utils目录下,无跨目录导入需求,可直接将unittest的搜索起始目录改为该目录,修改settings.json:

{
    "python.testing.unittestArgs": [
        "-v",
        "-s",
        "./shared-scripts/utils",
        "-p",
        "*test*.py"
    ],
    "python.testing.pytestEnabled": false,
    "python.testing.unittestEnabled": true
}

注意:该方案仅适配单目录测试场景,后续如果出现跨目录导入模块的需求,仍会触发同类导入报错。


内容的提问来源于stack exchange,提问作者Ashish Narmen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 09:09:56