python - 使用 pytest 导入会破坏 VSCode 测试
问题描述
我有一个项目,我希望 VS Code 发现测试和其他测试功能,以使测试更容易。我有一个问题,当我尝试发现测试时,测试文件中的导入会中断。
我有一个像这样的文件结构:
project\
__init__.py
package1\
module1.py
__init__.py
tests\
test.py
__init__.py
在 test.py 我有一行:
import project.package1.module1 as module1
我通过调用根文件夹来运行我的项目python -m project
,并且我能够通过python -m pytest project
从根文件夹调用来成功运行测试。
当我运行 VS Code 的“发现测试”功能或尝试使用调试器单步执行文件时,我收到错误“ModuleNotFoundError: No module named project”。
有谁知道如何解决这个问题?
解决方案
我遇到了同样的问题,我能够在 VSCode 的终端中成功运行pytest
,但发现失败了。python -m pytest
我的解决方案是通过以下方式实现失败的导入
import sys
sys.path.insert(0, '/full/path/to/package1/')
from package1.module1 import module1
请注意,VSCode 是以project
文件夹为根目录打开的。
推荐阅读
- math - 将平面从点/法线/D 转换为平面方程
- react-native - flowtype 插件影响代码的其他部分
- sql - 删除字符串 SQL 中的电子邮件地址
- flutter - 如何在颤动中限制 GridView 小部件的宽度
- sas - SAS - 如何配置 sas 以使用本地磁盘而非本地磁盘 C 中的资源:
- css - 如何在 Vue 中定位固定的子元素?
- jquery - Array.map() 产生奇怪的结果
- java - 带有资源注释的 JNDI 查找始终为 NULL
- javascript - Dijkstra 算法 React Native
- json - 从固定的 JSON 结构中提取键名