1. 程式人生 > 其它 >005b、fixture之conftest.py , yield,執行順序的疑問

005b、fixture之conftest.py , yield,執行順序的疑問

參考資料: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

執行結果如下: