问题标签 [tox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
421 浏览

python - Tox:无法通过 tox 调用 Jython 和 PyPy

我尝试通过毒性测试调用 Python2.7、PyPy 和 Jython。这些测试与 Python 2.7 完美配合,但是,它总是会为 PyPy 和 Jython 引发 Import- 或 AssertationError。我在这里发现了一个类似的错误报告,其中指出 ImportError 应该使用 PyPy 1.5 解决。

我关于 PyPy 的错误:

我的 Jython 错误日志

你能给我建议我应该改变什么吗?

我在 java1.7.0_25 和 tox 1.5.0 上使用 [PyPy 2.0.2 和 GCC 4.8.1 20130603 (Red Hat 4.8.1-1)]、Jython 2.2.1。

0 投票
1 回答
2023 浏览

python - 报告多个 Python 版本的累积覆盖率

我的代码根据 Python 的当前版本有条件地运行,因为我支持同一个包中的 2.6、2.7 和 3.3。

我目前使用默认版本的 Python 生成这样的覆盖率报告:

这很有用但并不理想,因为它只报告 Python 2.7 的覆盖率。相反,我想生成一份关于 2.6、2.73.2的测试覆盖率的累积报告。

如何生成多版本覆盖率报告?

旁注:我已经尝试将commands = coverage run --source mypackage setup.py testpy26、py27、py33 中的每一个都放入我的 tox.ini 中,但这似乎并没有生成累积覆盖率报告。

0 投票
4 回答
14068 浏览

python - 如何在没有 setup.py 的项目中运行 tox?

我想tox在两个 virtualenvs 中运行我的单元测试,因为我的应用程序必须支持 2 个不同的 Python 版本。

我的问题是tox需要 a setup.py,但我没有,因为我的应用程序不是模块并且有自己的安装程序。现在我不想经历自动化安装过程的麻烦setup.py,我只想运行我的单元测试而不必编写一个setup.py.

那可能吗?或者我怎么能写一个什么都不做的“空”setup.py?你能指点我一些关于这个主题的文档吗(distutils文档解释了如何写一个有意义的setup.py,而不是空的)?

0 投票
1 回答
531 浏览

python - 如何计算全球覆盖率?

我正在使用tox来测试我的python egg。我想知道覆盖范围

但问题是测试是使用python 2(2.6 和 2.7)和 python 3(3.3)执行的,有些行应该在 python 2 中执行,而其他行应该在 python 3 中执行,但这看起来像只计算执行的行使用 python 2(tox 中的最后一部分,py26-dj12)。你可以在这里看到这个:

https://coveralls.io/files/64922124#L33

这种方式通过不同的django版本...

有没有办法获得全球覆盖?

0 投票
2 回答
819 浏览

python - 为什么 TravisCI 找不到我的 LICENSE 文件?

Travis-CI 不会构建我的项目,发出此错误:

该文件应该已包含在分发中,因为它在 的命名参数package_data中提到setup()

请注意,我们使用的是 tox:

和更早:

我没有成功地尝试使用这样的绝对路径:

显示和env=是相同的,所以应该可以工作,因为它位于 Git 目录的根目录。PWDTRAVIS_BUILD_DIRopen('LICENSE')

在本地通过 Tox,所有 Python 版本的所有测试都成功。

Travis-Lint 接受我的.travis.yml

0 投票
1 回答
2434 浏览

python - 使用 setup.py test 和 tox 运行 Django 测试

我构建了一个 Django 应用程序并使用setuptools. 现在,我想做以下事情:

  1. 我想用python setup.py test. 但是当我发出这个命令时,我得到:

    /li>
  2. 我想使用 Tox 来运行我的测试,但我不知道应该在command属性中写什么来运行我的 Django 应用程序测试。

0 投票
2 回答
12954 浏览

python - 使 py.test、coverage 和 tox 一起工作:测试文件夹中的 __init__.py?

我对,和:有一个奇怪的问题tox,当从 启动该选项时,它似乎需要文件夹中的一个文件,这不是立即显而易见的。py.testcoveragepytest-covpy.test--covtox__init__.pytests

在写这篇文章时,我已经通过添加上述内容解决了最初的问题tests/__init__.py,但是到目前为止,我并不完全理解它为什么会起作用或不起作用,所以我仍然在寻求帮助。请参阅下面的详细资料。

我在 SO 上找到了一个相关的问题,但它只会让它更加混乱,因为答案似乎与我到目前为止所想出的相反: `py.test` 和 `__init__.py` 文件

另请参阅此处的官方文档:py.test - 良好的集成实践(页面的最底部)。


简化的项目结构:


相关部分tox.ini


相关部分.coveragerc


现在,结果:

  • py.test --cov=project --cov-report=termtests/__init__.py无论文件是否存在,从项目根目录运行 => 正确覆盖。
  • tox -e check没有tests/__init__.py=> 测试被发现并运行,但我收到警告“Coverage.py 警告:未收集数据。” 所有模块的覆盖率为 0%
  • tox -e checktests/__init__.py=> 再次正确覆盖。

对我来说,为什么tests/__init__.py文件必须在那里(添加这个空文件解决了最初的问题)以进行tox运行并不是很明显,但是当您手动运行测试/覆盖时并不重要。有任何想法吗?

0 投票
0 回答
833 浏览

python - Py.test 命令在 Tox 中失败,而它从新环境中的命令行工作时

我遇到了一个非常奇怪的行为。我有一个想要测试的 Django 应用程序。我创建了一个全新的虚拟环境,使用 py.test 和 pytest-django 填充它,并使用py.test --pyargs app.tests.__init__ --ds=app.tests.settings. 一切都按预期工作。

现在,我想使用 tox 运行测试。我还在上面的虚拟环境中安装了 tox,将这些行添加到 tox.ini:

当我进入tox命令行时,所有测试都开始失败。

这很奇怪,因为我对 tox 使用了相同的命令。唯一的应用程序依赖项是 Django。

0 投票
1 回答
200 浏览

python - 如何以可移植的方式将 tox 指向所有 python 版本(例如,没有硬编码 tox.ini 中的路径)?

我想为 python 2.6、2.7、3.3 等运行 tox,并且正在寻找一种不涉及将 python 路径硬编码到项目的 tox.ini 中的方法,就像我目前正在做的那样:

因为这在另一台机器上运行时会中断。tox 是否有一些全局配置文件,我可以在其中设置它(在 ~/.tox/ 或手册中找不到答案)?

谢谢

-本

0 投票
2 回答
2547 浏览

python - 安装多个版本的python时,tox使用错误版本的pip

我有一个支持 python 2.4、2.6 和 2.7 的构建框。这导致在他们自己的 python 安装中需要安装各种版本的点子。我tox用来通过setup.py.

每当我运行 a{python2.7_installation_dir}/bin/python setup.py test时,都会生成一个.tox目录。.tox在我运行的目录里面

所以 .tox 目录中的 pip 版本是 1.4.1,而我用来执行的 python 解释器安装的 pipsetup.py test是 1.5.2。这会在运行测试时导致错误,因为它使用 pip 安装目录,其中一些来自外部源,在 1.5.2 中,我们需要为其中一个模块显式设置 --allow-external --allow-unverified 标志在 1.4.1 中不存在,每次我通过 tox 调用测试时都会导致错误。

只有一个python2.7安装,它是从源代码安装的。但我认为它运行 pip 1.4.1,但现在已升级为使用 1.5.2。tox怎么能用老版本?有没有.pth需要清理的文件或东西?

我可以tox直接删除并运行 pytests,但我更喜欢通过tox.
如果您想查看日志,请告诉我,我可以使用日志更新问题。