问题描述
上次我遵循推荐的 src 布局 (https://hynek.me/articles/testing-packaging/) 并使用 tox 取得了巨大成功。
但是 VSCODE 测试发现失败,因为无法导入 src 包。这是预期的,因为我们要测试 已安装 包。
但是如何在 vscode 中调试我的测试?
解决方法
(这里是 Q 作者:在发布问题之前我已经对此进行了研究,因此分享我的发现)
不是解决方案
您可以修改 PYTHONPATH 以指向您的 src
目录,但它破坏了拥有单独 src
目录的主要好处(阅读来自 OP 的链接)。
解决方案
使用 pip install -e path/to/your/package
(通常为 pip install -e .
)启用开发模式,并在安装时测试您的代码库。
之后,您的测试应该会被正确发现。否则是不同的问题 - 读取与代码输出控制台。
注意:这需要 setup.py
作为构建后端
诗歌的解决方法
pyproject.toml
[build-system]
requires = [
"poetry-core>=1.0.0","setuptools" # to support local installations
]
然后
poetry build --format sdist && tar --wildcards -xvf dist/*.tar.gz -O '*/setup.py' > setup.py
pip install -e .
来源:https://github.com/python-poetry/poetry/issues/34
TLDR:正确的解决方案超出了诗歌的范围,链接到 python-list 讨论:https://github.com/python-poetry/poetry/issues/34#issuecomment-732478605