0七、fixture 返回值

fixture返回值都是默認None,咱們能夠選擇讓fixture返回咱們須要的東西。若是你的fixture須要配置一些數據,讀個文件,或者鏈接一個數據庫,那麼你能夠讓fixture返回這些數據或資源。html

如何帶參數

fixture還能夠帶參數,能夠把參數賦值給params,默認是None。對於param裏面的每一個值,fixture都會去調用執行一次,就像執行for循環同樣把params裏的值遍歷一次,這個功能能夠作數據驅動和工廠函數.python

import pytest


@pytest.fixture(params=[1, 2])
def data(request):
    """
    :param request:<class '_pytest.fixtures.SubRequest'>
    """
    return request.param


def test_data(data):
    print(f"data:{data}")
    assert 1 == data

結果:數據庫

╰ pytest -v -s ./test_data.py
================= test session starts =================
platform darwin -- Python 3.7.4, pytest-4.4.0, py-1.8.0, pluggy-0.13.0 -- /Users/zhouwanghua/Code/Leyan/python/robocop/bin/python
cachedir: .pytest_cache
metadata: {'Python': '3.7.4', 'Platform': 'Darwin-18.6.0-x86_64-i386-64bit', 'Packages': {'pytest': '4.4.0', 'py': '1.8.0', 'pluggy': '0.13.0'}, 'Plugins': {'bdd': '3.1.0', 'html': '1.20.0', 'metadata': '1.8.0'}}
rootdir: /Users/zhouwanghua/Code/Leyan/robocop, inifile: pytest.ini
plugins: bdd-3.1.0, html-1.20.0, metadata-1.8.0
collected 2 items                                                                                                                  

test_data.py::test_data[1] data:1
PASSED
test_data.py::test_data[2] data:2
FAILED

=================FAILURES =================
_____________________test_data[2] _____________________

data = 2

    def test_data(data):
        print(f"data:{data}")
>       assert 1 == data
E       assert 1 == 2
E         -1
E         +2

test_data.py:14: AssertionError
================= 1 failed, 1 passed in 0.05 seconds =================
相關文章
相關標籤/搜索