1. 程式人生 > 其它 >018、fixture之 yield 實現 teardown

018、fixture之 yield 實現 teardown

1、fixture之 yield 實現 teardown

  a、帶有 yield 的函式在 Python 中被稱之為 generator(生成器) ,可以暫時簡單的理解為函式的return , 後面可以加返回值 yield login_status, code 。

    專案層級如下:

  conftest.py 程式碼如下:

import pytest


@pytest.fixture(scope='class')
def open_browser():
    print('\n開啟瀏覽器')
    result = '開啟瀏覽器成功'

    # yield 相當於return ,可返回值; 此處返回result的值 ;
yield result print('\n關閉瀏覽器')

  test_ff.py 程式碼如下:

class TestWeb():

    # 呼叫open_browser接受返回值
    def test_open_web(self, open_browser):
        result = open_browser
        print(result)
        print('\n開啟網站')

    def test_close_web(self):
        print('\n關閉網站')

  執行結果如下:

(venv) D:\SkyWorkSpace\WorkSpace\Pytest\Temp\day11\ff>pytest -sv
======================================================================== test session starts ======================================================================== platform win32 -- Python 3.8.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 -- D:\SkyWorkSpace\WorkSpace\Pytest\Temp\day11\venv\Scripts\python.exe cachedir: .pytest_cache rootdir: D:\SkyWorkSpace\WorkSpace\Pytest\Temp\day11\ff collected
2 items test_ff.py::TestWeb::test_open_web 開啟瀏覽器 開啟瀏覽器成功 開啟網站 PASSED test_ff.py::TestWeb::test_close_web 關閉網站 PASSED 關閉瀏覽器 ========================================================================= 2 passed in 0.02s ========================================================================= (venv) D:\SkyWorkSpace\WorkSpace\Pytest\Temp\day11\ff>