如何检查是否安装了pytest-django以及为什么客户端夹具无法正常工作?

时间:2015-06-26 12:47:16

标签: django pytest pytest-django

我使用pip安装了pytest-django并制作了一个测试文件,该文件根据docs使用了client灯具,但运行此文件会给我fixture 'client' not found。这是我的test_homepage.py

import pytest


@pytest.mark.django_db
def test_homepage(client):
    response = client.get('/')
    assert response.status_code == 200

1 个答案:

答案 0 :(得分:4)

您确定已安装pytest-django吗?我在我的机器上安装了pip install pytest-django并运行了一个简单的项目。

  1. 安装platform linux -- Python 3.4.3 -- py-1.4.30 -- pytest-2.7.2 rootdir: /home/matt/projects/test_app/src, inifile: pytest.ini plugins: django collected 1 items tests/test_example.py .
  2. 设置并运行我的样本测试:

    import pytest
    
    @pytest.mark.django_db
    def test_something(client):
            response = client.get('/')
            assert  response.status_code == 200
    

    示例代码:

    pip uninstall pytest-django

    请注意列出的插件和代码可以正常工作。

  3. 为了测试而卸载我要删除py.test

  4. 再次运行测试platform linux -- Python 3.4.3 -- py-1.4.30 -- pytest-2.7.2 rootdir: /home/matt/projects/test_app/src, inifile: pytest.ini collected 1 items tests/test_example.py E ==================================== ERRORS ==================================== _______________________ ERROR at setup of test_something _______________________ file /home/matt/projects/test_app/src/tests/test_example.py, line 3 @pytest.mark.django_db def test_something(client): fixture 'client' not found available fixtures: tmpdir, pytestconfig, recwarn, capsys, capfd, monkeypatch use 'py.test --fixtures [testpath]' for help on them.

    pytest

    现在我们可以看到您在项目中说明的相同错误。

  5. 所以,如果我是你,我会从您的环境中完全删除pytest-djangopytest-django,然后重新安装。看起来好像没有安装py.test --traceconfig或者由于某种原因没有检测到插件。

    如果这无助于解决项目,那么您的另一个选择是运行template <typename T> std::tuple<std::vector<T>, T, T> f() { std::vector<T> p(1000); return std::make_tuple(std::move(p), 10, 10); } ,这将为您提供更详细的运行流程输出。然后执行此操作,然后将输出添加到您的问题中。