当前位置: 首页 > 知识库问答 >
问题:

在tox-pytest中使用自己的包

葛炜
2023-03-14

我有一个python应用程序要测试。此应用程序正在导入许多包,例如:

import time
import sys
.
.
.
import mypackage

其中mypackage是我自己的包。

当我开始应用程序时,一切正常。然而,一旦我试图运行毒物测试它,我就会得到以下错误:

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/*' 

共有2个答案

白云
2023-03-14

tox遍历deps中描述的所有包,并尝试使用pip安装安装所有包。如pip安装包页面所述,您可以:

pip安装 /path/my/package

这意味着deps部分不仅接受来自PyPI的包,还接受path指定的本地包。

只需将带有setup.py的包的根路径添加到deps部分,就可以了。

deps =
    pytest
    coverage
    time
    sys
    /projects/py/mypackage
井昊乾
2023-03-14

如果您使用的是pip而不是python setup.py,我认为这在很多方面都是可能的:

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

注意:我不确定选项(2)是否仅适用于git回购,还是仅适用于适当的归档。。。我记得不久前在--查找链接时遇到了与此相关的问题。

 类似资料:
  • 我试图在我自己的包中使用data.table包。MWE如下:

  • Tox

    保护我们剩下的人的通话信息安全,使用TOX可以让你在和家人,朋友,爱人交流时保护你的隐私不受政府无孔不入的的偷窥. 关于TOX:其他牛逼的软件因为一些细化服务问你要钱的时候, TOX分文不取 . 你用了TOX, 想干嘛就干嘛. 核心源码:https://github.com/irungentoo/toxcore Android 客户端:Antox

  • tox的目标是提供最先进的自动化打包,测试和发布的Python软件的工具,可以用于控制台或者基础到你的持续构建平台。 tox是一个通用的virtualenv管理和测试命令行工具,可以: 检查你的包被正确地安装不同版本的Python和解析器 在每个环境中运行你的测试,配置测试工具的选择 作为一个持续集成服务器的前端,大大降低了测试工作量。

  • 是否可以不仅在WebElement中使用@findby,而且在我自己的类中也使用@findby? 我想有我的类用于与页面元素合作,并在其中重写WebElement接口的一些方法。 但我发现了错误: 您能告诉我重写WebElement方法并使用我的.isdispalyed()方法的正确方法吗?我想继续使用@findby注释。

  • 我如何像这样使用我的电子邮件example@domain.ph在phpmailer中。因为我总是有一个错误,即使我有一个正确的凭据。 2020-05-14 09:21:24服务器- 这是我的配置:

  • 更新(阅读后传递额外的属性到maven原型:生成): 我创造了自己的原型。src/main/资源/原型资源/pom.xml: 想要使用我自己的第三方deps工件和第三方deps版本参数。所以我添加了src/main/resources/META-INF/maven/archetype元数据。xml文件: 将archetype安装到我的本地存储库中。然后根据我的自定义原型创建工件: mvn原型:生成