vscode 用诗歌测试发现src 布局

问题描述

上次我遵循推荐的 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