首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pytest在安装pytest-xdist后无法识别-n选项

Pytest在安装pytest-xdist后无法识别-n选项
EN

Stack Overflow用户
提问于 2014-09-18 22:35:58
回答 4查看 2.6K关注 0票数 6

我已经在pytest工作环境上安装了pytest-xdist:

代码语言:javascript
复制
pip install pytest-xdist

我已经收到了这个输出

代码语言:javascript
复制
Downloading/unpacking pytest-xdist
  Downloading pytest-xdist-1.10.tar.gz
  Running setup.py egg_info for package pytest-xdist

    no previously-included directories found matching '.hg'
Downloading/unpacking execnet>=1.1 (from pytest-xdist)
  Downloading execnet-1.2.0.tar.gz (163kB): 163kB downloaded
  Running setup.py egg_info for package execnet

    warning: no files found matching 'conftest.py'
Requirement already satisfied (use --upgrade to upgrade): pytest>=2.4.2 in /Users/sal/Documents/code/Python/VirtualEnv/Spring/lib/python2.7/site-packages (from pytest-xdist)
Requirement already satisfied (use --upgrade to upgrade): py>=1.4.20 in /Users/sal/Documents/code/Python/VirtualEnv/Spring/lib/python2.7/site-packages (from pytest>=2.4.2->pytest-xdist)
Installing collected packages: pytest-xdist, execnet
  Running setup.py install for pytest-xdist

    no previously-included directories found matching '.hg'
  Running setup.py install for execnet

    warning: no files found matching 'conftest.py'
Successfully installed pytest-xdist execnet
Cleaning up...

此时,我已经尝试并行运行我的测试套件。

代码语言:javascript
复制
py.test -n 4

但是我收到了下面的输出

代码语言:javascript
复制
usage: py.test [options] [file_or_dir] [file_or_dir] [...]
py.test: error: unrecognized arguments: -n

'py.test --version is‘的输出

代码语言:javascript
复制
This is pytest version 2.6.2, imported from /Users/sal/Documents/code/Python/VirtualEnv/Spring/lib/python2.7/site-packages/pytest.pyc
setuptools registered plugins:
  pytest-capturelog-0.7 at /Users/sal/Documents/code/Python/VirtualEnv/Spring/lib/python2.7/site-packages/pytest_capturelog.pyc
  pytest-contextfixture-0.1.1 at /Users/sal/Documents/code/Python/VirtualEnv/Spring/lib/python2.7/site-packages/pytest_contextfixture.pyc
  pytest-cov-1.7.0 at /Users/sal/Documents/code/Python/VirtualEnv/Spring/lib/python2.7/site-packages/pytest_cov.pyc
  pytest-django-2.6.2 at /Users/sal/Documents/code/Python/VirtualEnv/Spring/lib/python2.7/site-packages/pytest_django/plugin.pyc
  pytest-pydev-0.1 at /Users/sal/Documents/code/Python/VirtualEnv/Spring/lib/python2.7/site-packages/pytest_pydev.pyc
  pytest-runfailed-0.3 at /Users/sal/Documents/code/Python/VirtualEnv/Spring/lib/python2.7/site-packages/pytest_runfailed.pyc

而pytest-xdist实际上缺失了。

我哪里错了?谢谢。

EN

回答 4

Stack Overflow用户

发布于 2016-04-10 14:25:52

user2412166一样,我也遇到了同样的问题。与user2412166不同,我的解决方案是放宽pip3安装的xdistpytest_xdist-1.14.dist-info系统目录的权限。

一些背景故事:为了安全,我在系统上运行了一个严格的umask,默认情况下禁止对other用户的所有访问和对group用户的写访问:

代码语言:javascript
复制
$ umask
027

虽然这通常是一件好事,但偶尔也会给我带来麻烦。在此umask下通过pip3安装python-xdist

代码语言:javascript
复制
$ sudo pip3 install pytest-xdist

pip3中的...resulted禁止非超级用户进行读取和执行访问-最好只有我这样的超级用户

代码语言:javascript
复制
$ ls -l /usr/lib64/python3.4/site-packages/xdist
drwxr-x---   3 root root 4.0K 2016-04-10 01:19 xdist/
$ ls -l /usr/lib64/python3.4/site-packages/pytest_xdist-1.14.dist-info
drwxr-x---   3 root root 4.0K 2016-04-10 01:19 xdist/

虽然pip3这样做没有错,但py.test是(...arguably!)在插件检测期间默默忽略而不是显式报告明显的权限问题是错误的。

通过递归地授予other用户对受影响的系统目录的读取和目录执行权限,可以很容易地修复此问题:

代码语言:javascript
复制
$ chmod -R o+rX /usr/lib64/python3.4/site-packages/xdist
$ chmod -R o+rX /usr/lib64/python3.4/site-packages/pytest_xdist-1.14.dist-info

证据就是命令行布丁:

代码语言:javascript
复制
$ ls -l /usr/lib64/python3.4/site-packages/xdist
drwxr-xr-x   3 root root 4.0K 2016-04-10 01:19 xdist/
$ ls -l /usr/lib64/python3.4/site-packages/pytest_xdist-1.14.dist-info
drwxr-xr-x   3 root root 4.0K 2016-04-10 01:19 xdist/
$ py.test --version
This is pytest version 2.8.7, imported from /usr/lib64/python3.4/site-packages/pytest.py
setuptools registered plugins:
  pytest-xdist-1.14 at /usr/lib64/python3.4/site-packages/xdist/looponfail.py
  pytest-xdist-1.14 at /usr/lib64/python3.4/site-packages/xdist/plugin.py
  pytest-xdist-1.14 at /usr/lib64/python3.4/site-packages/xdist/boxed.py

这样就清楚了不清楚之处,调试了buggy,并快速并行化了缓慢的测试。

票数 6
EN

Stack Overflow用户

发布于 2015-09-26 08:04:43

我也有同样的问题。问题不在于版本。不知何故,py.test看不到xdist在哪里。以下是对我有效的方法:

pip install pytest --用户

pip安装pytest-xdist --user

导出路径=$HOME/.local/bin:$PATH

票数 2
EN

Stack Overflow用户

发布于 2014-09-19 18:59:34

请尝试py.test --version并查看输出,其中解释了导入内容的位置,包括插件。很可能没有运行您认为正在运行的py.test

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25915626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档