- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
tox website 上列出的第一个功能是“使用不同的 Python 版本和解释器检查你的包是否正确安装”。这让我觉得如果我搞砸了我的 setup.py,测试将不会通过,并且我会被提醒我的 setup.py 已经变坏了。
事实并非如此。事实上,如果您按照通常的模式将您的模块或包放在与您的 tox.ini 相同的目录中,那么代码是从本地目录(又名 {toxinidir})导入的。这意味着你可以让你的 setup.py 什么都不做,tox 会告诉你它很好。在这一点上,很容易在你推送到 pypi 并尝试使用它之后才注意到这个问题。这是我希望避免出现的问题。
主要问题是空字符串在测试期间出现在 sys.path 上。 Python 将其解释为当前工作目录并从那里导入。
有什么方法可以配置 tox,使本地目录在测试期间不被使用?
目前我的解决方法是 cd {envtmpdir} && coverage run && mv .coverage {toxinidir}
,但这显然是一个丑陋的 hack。
这里我提供两个版本的代码:
我的目标是找到一个 tox 配置,避免上述问题,并且足够合理,推荐在所有项目中使用。
最佳答案
我注意到 nosetests
在其运行期间修改了 sys.path
:它在一开始就将 check out 的代码添加到其中。这实质上打破了毒素试图创造的分离。要解决此问题,您只需将 -P
标志附加到 nosetests
:
[tox]
envlist = py27
[testenv]
commands=
nosetests -P tests
deps=
nose
-rrequirements.txt
此外,我必须附加 tests
(将 nose 指向 tests/
目录)以防止 nose import
ing 任何非- 测试代码(我使用的 C 扩展可能会或可能不会在结帐时构建)。
关于python - tox 下的测试不一定使用已安装的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23186845/
我们有一个 tox - 启用项目(我们称之为“主”项目),它依赖于另一个 tox 项目(我们称之为“库”项目)——所有这些都统一在一个存储库中,因为它都是一个大型总体项目的一部分。 项目如何为普通用户
我试图在将命令放入 tox.ini 的 [testenv] Commands = 部分之前验证命令。 是否可以通过将自定义命令作为 shell 参数传递给 tox?类似的东西 tox -e 我尝试
命令: tox -e generated_p27, generated_p35 -- -v -n 5 --dist=loadfile --vcr-record-mode=once 输出 usage:
tl;博士: 我正在为我的一个项目设置 CI,托管在 github 上,使用 tox 和 travis-ci。在构建结束时,我运行 converalls 将覆盖率报告推送到 coveralls.io。
我想使用 setup.py 作为软件包的权限来安装以进行测试,像这样使用 extra_requires 完成: setup( # ... extras_require={
我想为 python 2.6、2.7、3.3 等运行 tox,我正在寻找一种方法来执行此操作,而不像我一样将 python 路径硬编码到项目的 tox.ini 中目前在做: [testenv:py27
描述节继承的 tox 文档在哪里?例如,对于以下内容,[testenv:py27] 继承自 [testenv]: [testenv] command = py.test {toxinidir}/tes
我有一个项目,假设名为 'my_project'具有以下结构: my_project | tox.ini setup.py src | client.py server.py co
tox 是否可以在使用 pip 安装依赖项时避免将输出重定向到文件?我想查看正在安装的内容,因此我想登录到标准输出而不是文件。 最佳答案 如果您想查看每次运行都安装了什么,可以使用 pip freez
我在 tox.ini 中有只应在 Windows 上运行的测试部分。 如何配置 tox 以仅在特定平台上运行测试部分? 最佳答案 Tox 1.8+ 引入了新的 platform 设置。这是来自 the
在tox.ini , 你指定你想要的包 tox安装在它创建的 virtualenvs 中。 [testenv] deps = mock pytest commands = py
tox website 上列出的第一个功能是“使用不同的 Python 版本和解释器检查你的包是否正确安装”。这让我觉得如果我搞砸了我的 setup.py,测试将不会通过,并且我会被提醒我的 setu
我们的 python 项目有一个 requirements.txt 文件,其中列出了一些依赖模块。我们曾经使用过 pip install -r requirements.txt 安装这些依赖项。我们现
根据文档,tox 创建“通过调用 python setup.py sdist 的当前项目的源代码分发”。 我如何配置 tox 使其生成一个轮子,然后将其用于测试?: python setup.py b
我正在使用 pytest 和 tox。我可以使用这样的关键字运行我的一些测试: pytest -k path/to/tests 现在能够使用 tox 也能做到这一点真的很方便,因为那里的环境很干净并
我有一个 tox.ini 文件,想在不同的 django 版本上进行测试: [tox] envlist = py27-django16-{[base]deps] py32-django
我用 tox使用以下基本配置 ( tox.ini ) 测试 python 项目: [tox] envlist = py3 isolated_build = True [testenv] deps =
我的一些测试只在 Linux 下运行,而其他的则可以在任何地方运行。在 Linux 上运行时,我想将最小覆盖率变量设置为比在台式机 Mac 上运行时更高的值。 我怎样才能做到这一点? 这是我的 tox
在我的 tox.ini文件,依赖项通过 requirements.txt 安装setup.py 也使用的文件, 如下: requirements.txt文件包含可接受的范围 django包,取决于安装
我有一个使用诗歌和毒药的Python项目。它有源代码、测试和脚本(juptext 笔记本)。我无法在脚本中导入开发依赖项,但可以在测试中导入。 当我遇到这个问题时,我创建了以下最小示例。一开始不行,后
我是一名优秀的程序员,十分优秀!