在tox + pytest中使用自己的软件包

时间:2018-09-25 14:20:00

标签: python pytest tox

我有要测试的python应用程序。 该应用程序正在导入很多软件包,例如:

self

mypackage是我自己的软件包。

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

import time
import sys
.
.
.
import mypackage

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

tox.ini文件的内容:

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

1 个答案:

答案 0 :(得分:1)

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

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

注意:我不确定选项(2)是否仅适用于git repo或仅适用于适当的档案...我记得与--find-links a相关的问题回来的时候。