5

pytest-django使用 pip 安装并制作了一个测试文件,该文件根据文档client使用夹具,但运行它给了我. 这是我的:fixture 'client' not foundtest_homepage.py

import pytest


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

1 回答 1

5

你确定你已经pytest-django安装了。我pytest-django在我的机器上安装并运行了一个简单的项目。

  1. 安装pip install pytest-django
  2. 设置并运行我的示例测试:

    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 .
    

    示例代码:

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

    请注意列出的插件并且代码有效。

  3. 为了测试而卸载我将删除pip uninstall pytest-django

  4. 再次运行测试py.test

    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.
    

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

所以,如果我是你,我会完全删除pytestpytest-django从你的环境中重新安装。看起来要么pytest-django尚未安装,要么由于某种原因未检测到插件。

如果这无助于解决项目,您的另一个选择是运行,py.test --traceconfig这将为您提供运行过程的更详细的输出。执行此操作,然后将输出添加到您的问题中。

于 2015-06-26T15:44:58.560 回答