Lit*_*chy 2 python python-unittest visual-studio-code
我使用 VSCode 中集成的 Python unittest 进行测试。我有这样的目录
project_root/
src/
module/
__init__.py
a.py
test/
module/
__init__.py
test_a.py
Run Code Online (Sandbox Code Playgroud)
有test_a.py进口from module.a import SomeClass
我有参数
"-v",
"-s",
"./test",
"-p",
"test*.py"
Run Code Online (Sandbox Code Playgroud)
当运行测试发现时,它失败并引发ModuleNotFound或Can not import模块或类a.py
PS:我已经设置了PYTHONPATH,settings.json代码分析和程序启动都工作正常。但似乎对插件没有帮助unittest。一个问题是,两个src,test都有命名的模块module,我不确定这是否重要。
如何让它发挥作用?
更新:似乎这是一个名称冲突问题,unittest_discovery 无法处理此问题。在我更改 args 后,-s ./test/module它可以导入 src 模块。
您需要在文件PYTHONPATH中配置.env。
何时使用 PYTHONPATH 的一个示例是,如果您的 src 文件夹中有源代码,而测试文件夹中有测试。但是,在运行测试时,除非您硬编码相对路径,否则这些测试通常无法访问 src 中的模块。
要解决此问题,您可以通过在 VS Code 工作区中创建 .env 文件将 src 的路径添加到 PYTHONPATH 。
PYTHONPATH=src
因为
使用终端设置时,PYTHONPATH 会影响用户在终端内运行的任何工具,以及扩展通过终端路由为用户执行的任何操作(例如调试)。但是,在这种情况下,当扩展执行 不通过终端路由的操作(例如使用 linter 或格式化程序)时,此设置不会对 模块查找产生影响。
您可以参考官方文档了解更多详细信息。
| 归档时间: |
|
| 查看次数: |
2685 次 |
| 最近记录: |