005b、fixture之conftest.py , yield,執行順序的疑問
阿新 • • 發佈:2021-07-14
參考資料:http://www.python3.vip/tut/auto/pytest/01/
https://www.bilibili.com/video/BV1bV41167a4?p=2
在學習pytest時發現有位老師說有bug,然後我跟著除錯了下,現象確實如此 ,心中充滿疑惑??? 截圖如下:
程式碼層級目錄如下:
test_01 目錄下的 conftest.py 程式碼如下:
# -*- coding:utf-8 -*-
# @Author: Sky
# @Email: [email protected]
# @Time: 2021/7/14 9:23
import pytest
@pytest.fixture(scope='session', autouse=True)
def st_environment():
print(f'\n test_01下的##### setup::environment')
yield
print(f'\n test_01下的##### teardown::environment')
login 目錄下的 conftest.py 程式碼如下:
import pytest @pytest.fixture(scope='session',autouse=True) def st_loginaa(): print(f'\n login下的==== setup::login') yield print(f'\n login下的==== teardown::login')
login 目錄下的 test_login.py 程式碼如下:
class Test_C000001: def test_one(self): print('\nlogin1') assert 1 == 1 def test_two(self): print('\nlogin2') assert 2 == 2
notification 目錄下的 conftest.py 程式碼如下:
import pytest @pytest.fixture(scope='session',autouse=True) def st_notification(): print(f'\n notification下的****** setup::notification') yield print(f'\n notification下的***** teardown::notification')
notification 目錄下的 test_notification.py 程式碼如下:
class Test_C001003: def test_one(self): print('\nnotification1') assert 3 == 3 def test_two(self): print('\nnotification2') assert 4 == 4
執行結果如下: