018、fixture之 yield 實現 teardown
阿新 • • 發佈:2021-08-07
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 collected2 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>