找不到夹具'httpbin'

时间:2016-06-11 17:13:05

标签: python python-requests pytest

我开始阅读python requests库 我做的第一件事是在本地运行pytest。

然后我收到此错误消息:

  @pytest.fixture
  def httpbin(httpbin):
    fixture 'httpbin' not found
    available fixtures: tmpdir_factory, httpbin_secure, pytestconfig, httpbin, cov, cache, recwarn, monkeypatch, record_xml_property, capfd, capsys, tmpdir
    use 'py.test --fixtures [testpath]' for help on them.

在tests模块的conftest.py文件中,它尝试创建一个fixture:

@pytest.fixture
def httpbin(httpbin):
    return prepare_url(httpbin)

如何使用httpbin fixture创建一个httpbin fixture? 我错过了什么?

1 个答案:

答案 0 :(得分:1)

httpbin包由pytest-httpbin包提供。因此,您需要确保在运行测试之前安装了运行测试/构建文档所需的依赖项

这基本上等于pip install -r requirements.txt

更详细一点,将所有内容安装到virtualenv中:

# Create the virtualenv
$ virtualenv-2.7 --no-site-packages requests-env
$ cd requests-env
$ . bin/activate

# Make sure your venv's version of setuptools is up to date
(requests-env) $ pip install -U setuptools

# Clone a copy of the requests module
(requests-env) $ mkdir src
(requests-env) $ cd src/
(requests-env) $ git clone git@github.com:kennethreitz/requests.git

# Install required dependencies
(requests-env) $ cd requests/
(requests-env) $ pip install -r requirements.txt
(requests-env) $ pip install mock

# Run tests
(requests-env) $ py.test

(注意:pip install mock仅适用于Python< 3.3)