python - 在tox+pytest中使用自己的包

标签 python pytest tox

我有我想测试的Python应用程序。 该应用程序正在导入很多包,例如:

import time
import sys
.
.
.
import mypackage

其中 mypackage 是我自己的包。

当我启动应用程序时,一切正常。但是,一旦我尝试运行 tox 来测试它,我就会收到以下错误:

Collecting mypackage
Could not find a version that satisfies the requirement mypackage (from versions: )
No matching distribution found for mypackage

我知道 tox 无法安装 mypackage 依赖项,因为它不在 pip 中。您知道如何在此类应用程序上运行 tox 或如何使用 tox 安装自己的软件包吗?

我的 tox.ini 文件的内容:

[tox]
envlist = py36

[testenv]
deps =
    pytest
    coverage
    time
    sys
    mypackage
commands =
    python setup.py develop
    coverage erase
    coverage run -m pytest myapp/tests/
    coverage report --omit='.tox/*' 

最佳答案

我认为如果您使用 pip 而不是 python setup.py,这应该可以通过多种方式实现:

  1. 您可以通过在安装要测试的软件包之前或在同一行中执行 pip install/path/to/private/dependency 来手动安装依赖项。这有一个(次要)优点,您还可以使用 -e 在可编辑模式下安装依赖项。
  2. 您可以使用 pip install--find-links 选项,如 this question 的答案中所述。 - 这样做的优点是依赖项处理本身是自动完成的,您只需指定自己的安装包并告诉 pip 在哪里可以找到其他东西。重要的是,这也可以使用 environment variables 来指定。 ,因此您不必在 git 存储库中的任何位置硬编码本地路径。

注意:我不确定选项 (2) 是否仅适用于 git 存储库或仅适用于正确的文件...我记得与 --find 相关的问题-链接不久前。

关于python - 在tox+pytest中使用自己的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52500449/

相关文章:

python - 如何告诉 tox 使用 PyPI 镜像来安装包?

python-3.x - 多个 python 版本的 tox 覆盖范围

python - 使用特定的正则表达式 Python 隔离文本 block

python - 元组作为多维数组的索引

python - Flask 和 pytest 中带有 500 状态代码的模拟响应

python - 具有自定义名称的临时文件/目录?

python - 为什么 `tox` 在 Windows 的系统 Python 目录中安装包?

Python:懒惰地遍历类目录结构

python - 根据标签更改颜色和大小(matplotlib,python 3)

python - pytest 运行后删除缓存文件