运行 带有诗歌的pytest包

running a package pytest with poetry

我是诗歌的新手,想用 pytest 设置它。我在以下设置中有一个包 mylib

├── dist
│   ├── mylib-0.0.1-py3-none-any.whl
│   └── mylib-0.0.1.tar.gz
├── poetry.lock
├── mylib
│   ├── functions.py
│   ├── __init__.py
│   └── utils.py
├── pyproject.toml
├── README.md
└── tests
    └── test_functions.py

在test_functions我有

import mylib

然而,当我运行

poetry run pytest

它抱怨 mylib 没有被包括在内。我可以运行

pip install dist/mylib-0.0.1-py3-none-any.whl

但是 mylib 使我的 python 环境变得混乱。我也想将该环境用于其他包。

我的问题是:使用 poetry 和 pytest 的正确方法是什么?

我的底层 python 环境是干净的 pyenv python 3.8。使用 pyproject.toml 我为 mylib 创建了一个基于项目的虚拟环境。

您需要 运行 poetry install 来设置您的开发环境。它将安装所有包和开发要求,一旦完成,它将对您的源代码进行开发安装。

您只需 运行 一次,代码更改将直接传播,不需要 运行 再次安装。


如果您已经设置了所需的虚拟环境,请注意在您 运行 安装命令时激活它。如果你不这样做,poetry 将尝试创建一个新的虚拟环境并使用它,这可能不是你想要的。

仅供参考,您还需要在 pyproject.toml 中将 pytest 指定为开发依赖项。

如果您没有,poetry run 在您的家庭环境中找到 pytest 实例,但该实例不会找到venv。我不认为文档说得很清楚。

有一个specific way to run pytest:

poetry run pytest

我不能 运行 它只是 运行宁 pytest 激活了虚拟环境。当我 运行.

时什么也没有发生