标签: tox

如何配置 tox 来获取日志

我正在尝试在我的项目中使用毒性自动化测试。但我无法弄清楚使用 tox 时 python 文件中 test_methods 的日志或打印去了哪里。我还对整个 tox 目录进行了 grep 查找日志,但找不到它。

问题

1)如何在tox中配置日志目录?

2)日志的默认配置是什么?

有指向文档和示例的指针吗?

我的 tox.ini 文件

 [tox]
 minversion = 1.6
 skipsdist = True

 [testenv]
 skip_install = True
 setenv =
     VIRTUAL_ENV={envdir}
 deps = -r{toxinidir}/test-requirements.txt

 passenv = LANG

 [testenv:test]
 commands = ./test.sh --slowest --testr-args='{posargs}'
Run Code Online (Sandbox Code Playgroud)

python tox

6
推荐指数
1
解决办法
6086
查看次数

从 tox 运行时无法找到固定装置“mocker”(pytest-mock)

我一直在使用pytest-mock库来模拟 pytest。当我尝试使用tox命令运行测试时,出现以下错误:

...
tests/test_cli.py ....EEEE
...
file /path/to/test_cli.py, line 63
  def test_cli_with_init_cmd_fails_with_db_error(runner, mocker, context):
E       fixture 'mocker' not found
>       available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, context, cov, doctest_namespace, fs, monkeypatch, no_cover, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, requests_mock, runner, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory
>       use 'pytest --fixtures [testpath]' for help on them.
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从 venv 中直接使用 pytest 运行测试时,一切都按预期运行。

$ py.test --cov esmigrate --cov-report term-missing

...
platform linux -- Python 3.8.5, pytest-6.1.1, py-1.9.0, pluggy-0.13.1
rootdir: /path/to/project/root, …
Run Code Online (Sandbox Code Playgroud)

pytest python-3.x tox

6
推荐指数
1
解决办法
3万
查看次数

如何正确使用Pipenv和Tox?

我开始使用 Pipenv 来替换pip freeze > requirements.txt并获得对第三方依赖项的一些更高级的控制。我所有的新代码都是用 Python 3.8 完成的

问题是,当我使用toxPython 2.7 验证我的代码时,pipenv检查其中pipfile.lock包含 Python 3.8 使用的哈希值,导致安装失败。如何配置tox从头开始创建新环境而不使用 pipfile 锁中的哈希值?

我的点文件:

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
jinja2 = "*"
pandas = "*"
python-docx = "*"
docxtpl = "*"
numpy = "*"
af-design-report = {path = ".", editable = true}

[dev-packages]
flake8 = "*"
coverage = "*"
tox = "*"
pytest = "*"
pytest-coverage = "*"
pytest-flake8 = …
Run Code Online (Sandbox Code Playgroud)

python virtualenv tox pipenv

6
推荐指数
0
解决办法
2431
查看次数

预提交与毒性 | 有什么区别| 使用范围

毒物:https: //tox.wiki/en/latest/

预提交: https://pre-commit.com/

我想了解这两种选择的界限。

我知道预提交会创建一个 py 环境 - 与 tox 相同。对我来说,他们的架构看起来有点相似。

有些人将它们结合使用...... pre-commit 不能做什么,tox 可以?我看到了一些示例,其中通过 CI 管道期间的预提交,您可以运行单元测试等。

哪一个最适合集成到 CI 构建中?

python continuous-integration pre-commit tox pre-commit.com

6
推荐指数
1
解决办法
2421
查看次数

如何向tox的virtualenv添加引导脚本?

我的测试需要psycopg2和lxml,但是当我尝试通过tox将它安装在virtualenv中时,由于缺少pg_conf或其他依赖项而失败.

我找到了bootstrap脚本的这个解释:http://www.virtualenv.org/en/latest/index.html#bootstrap-example

如何向tox的virtualenv添加引导脚本?你知道我关注的任何好例子(lxml和psycopg2)吗?

python psycopg2 virtualenv setup.py tox

5
推荐指数
1
解决办法
693
查看次数

Python/tox,在测试之前启动一个进程,完成后关闭它

我正在使用Tox来检查我正在开发的系统在安装在新环境中时表现良好(+完整性检查setup.py文件).但是,系统使用memcached服务器,理想情况下我想为每次Tox运行生成一个新服务器.

是否有一种首选的方法在运行测试之前启动程序(之后关闭它们)或者我是否需要编写自定义运行程序?

编辑:测试运行器是py.test

python integration-testing pytest tox

5
推荐指数
2
解决办法
1698
查看次数

如何在travis构建期间更新tox上的setuptools

我正在尝试使用最新版本的setuptools开发一个python程序.但每次我的构建失败时都会显示以下消息:

$ tox -e $TOX_ENV

GLOB sdist-make: /home/travis/build/kartoch/myapp/setup.py

py26 create: /home/travis/build/kartoch/myapp/.tox/py26

py26 inst: /home/travis/build/kartoch/myapp/.tox/dist/myapp-0.1.0.zip

ERROR: invocation failed, logfile: /home/travis/build/kartoch/myapp/.tox/py26/log/py26-1.log

[...]

Unpacking ./.tox/dist/myap-0.1.0.zip

Running setup.py (path:/tmp/pip-P4VhFx-build/setup.py) egg_info for package from file:///home/travis/build/kartoch/myapp/.tox/dist/myapp-0.1.0.zip

The required version of setuptools (>=5.4.1) is not available,

and can't be installed while this script is running. Please

install a more recent version first, using

'easy_install -U setuptools'.

(Currently using setuptools 3.6 (/home/travis/build/kartoch/myapp/.tox/py26/lib/python2.6/site-packages))

Complete output from command python setup.py egg_info:
Run Code Online (Sandbox Code Playgroud)

到目前为止,问题是:

  • 更新/重新安装travis.yml中的setuptools没有任何效果,因为tox生成的'virtualenv'具有以前的setuptools
  • 在通过tox调用setup.py之前无法升级/重新安装setuptools(在此步骤之后安装依赖项)

任何的想法 ?

我正在使用以下'.travis.yml'启动我的测试:

language: python
env: …
Run Code Online (Sandbox Code Playgroud)

python build setuptools travis-ci tox

5
推荐指数
2
解决办法
1773
查看次数

作为Gitlab CI作业运行tox时权限被拒绝

我对Gitlab和Gitlab CI比较陌生(实际上是整个CI的事情),我已经在同一台机器上成功设置了我的Gitlab服务器和Gitlab CI服务器(很好,因为缺少备用服务器,而且几乎是因为我们的团队是在整个CI事情上还处于"beta"阶段).

我们现在有两个项目,一个角度项目(作为Web客户端)和一个烧瓶项目(作为Web服务).我已经在Gitlab和Gitlab CI中成功设置了我们的角度项目(效果很好,它运行我们的测试并完全构建脚本).

但是现在我也想设置我们的烧瓶项目,所以我们也可以应用持续集成,并且用于tox运行我们的测试脚本等(gulp用于我们的角度项目).

这是我们非常基本的tox.ini:

[tox]
skipsdist = True
envlist = py27

[flake8]
max-line-length = 79
exclude = venv, .tox
max-complexity = 10

[testenv]
deps=-rrequirements/testing.txt
changedir=tests
commands=py.test
Run Code Online (Sandbox Code Playgroud)

在我们的Gitlab CI Jobs中,我只是放在tox那里,因为我在我的开发服务器上执行的所有操作(这个设置在我的开发机器上工作正常,tox即使我不在运行中也只是运行),但我继续这样做运行此命令时,我的Gitlab CI上的权限被拒绝错误(见下文)

gitlab-ci-multi-runner 0.3.3 (dbaf96f)
Using Shell executor...
Running on hikari...
Fetching changes...
Removing .tox/
Checkouting 8325a2a2 as master...

tox
py27 create: /home/gitlab_ci_multi_runner/tmp/builds/runner-b0fcd933-    project-5-concurrent-0/gitlab.amici.com.ph/hris/xi-flask-starter-kit/.tox/py27
py27 installdeps: -rrequirements/testing.txt
ERROR: invocation failed (errno 13), args: [local('/home /gitlab_ci_multi_runner/tmp/builds/runner-b0fcd933-project-5-concurrent- 0/gitlab.amici.com.ph/hris/xi-flask-starter-kit/.tox/py27/bin/pip'),  'install', '-rrequirements/testing.txt'], cwd: /home/gitlab_ci_multi_runner /tmp/builds/runner-b0fcd933-project-5-concurrent-0/gitlab.amici.com.ph …
Run Code Online (Sandbox Code Playgroud)

gitlab tox gitlab-ci gitlab-ci-runner

5
推荐指数
0
解决办法
1314
查看次数

基于env变量的Tox运行命令

我目前的工作流程是在Travis CI上测试github PRs和Builds,使用tox测试pytest并将报告覆盖率报告给codeclimate.

travis.yml

os:
- linux
sudo: false
language: python
python:
- "3.3"
- "3.4"
- "3.5"
- "pypy3"
- "pypy3.3-5.2-alpha1"
- "nightly"
install: pip install tox-travis
script: tox
Run Code Online (Sandbox Code Playgroud)

tox.ini

[tox]
envlist = py33, py34, py35, pypy3, docs, flake8, nightly, pypy3.3-5.2-alpha1

[tox:travis]
3.5 = py35, docs, flake8

[testenv]
deps = -rrequirements.txt
platform =
    win: windows
    linux: linux
commands =
    py.test --cov=pyCardDeck --durations=10 tests

[testenv:py35]
commands =
    py.test --cov=pyCardDeck --durations=10 tests
    codeclimate-test-reporter --file .coverage
passenv =
    CODECLIMATE_REPO_TOKEN
    TRAVIS_BRANCH
    TRAVIS_JOB_ID
    TRAVIS_PULL_REQUEST …
Run Code Online (Sandbox Code Playgroud)

python travis-ci tox code-climate

5
推荐指数
1
解决办法
1036
查看次数

tox测试,使用setup.py extra_require作为tox deps源

我想使用setup.py作为软件包的权限来安装进行测试,使用extra_requires完成,如下所示:

setup(
    # ...
    extras_require={
        'test': ['pytest', ],
    },
)
Run Code Online (Sandbox Code Playgroud)

Tox似乎只能从requirements.txt文件安装,它只是意味着在测试之前快照需求的步骤(我不知道如何自动执行)或者将测试依赖项复制到tox文件中,这就是我所有的我想避免.一个邮件列表帖子建议tox.ini应该是测试依赖项的权限,但我不希望将tox完全插入到项目中.

python testing setup.py tox

5
推荐指数
2
解决办法
1413
查看次数