这个夹具问题有什么解决办法吗?

问题描述 投票:0回答:1

test_T001_launch_browser.py

from cashsite_admin_pageobjects.launch_browser_test.launch_browser_test_manager import LaunchBrowserTestManager
import pytest

class Test_T001_Launch_Browser:

    @pytest.fixture(scope="session")
    def test_launch_browser(self, browser, url) -> LaunchBrowserTestManager:
        launch_browser_test_mng = LaunchBrowserTestManager(browser, url)
        
        # Execute Launch Browser Test.
        assert launch_browser_test_mng.execute_test(), "Browser launch was not successful."
        return launch_browser_test_mng

test_T002_user_login.py

from cashsite_admin_pageobjects.user_login_test.user_login_test_manager import UserLogInTestManager
from cashsite_admin_testcases.test_T001_launch_browser import Test_T001_Launch_Browser
import pytest

class Test_T002_User_Login:

    async def test_user_login(self, test_launch_browser) -> None:
        browser = test_launch_browser.browser
        url = test_launch_browser.url

        user_login_test_mng = UserLogInTestManager(browser, url)

        # Execute User Login Test.
        assert await user_login_test_mng.execute_test(), "User login was not successful."

为什么我在运行代码时出现以下错误?

未找到 E 装置“test_launch_browser”

python selenium-webdriver pytest pytest-fixtures
1个回答
0
投票

您应该将夹具和测试分开。

为了采用更简洁的方法,如果您的装置将被广泛使用,我建议将它们放置在conftest.py中;

conftest.py


import pytest

@pytest.fixture(scope="session")
def test_config():
    # setup your test config (place your getting browser and url logic here)
    
    # Assuming that returning a dict will be a good fit for your test
    config = {
        "browser": browser,
        "url": url,
    }

    yield config

    # teardown (do your clean-up)
    

test_T001_launch_browser.py

from cashsite_admin_pageobjects.launch_browser_test.launch_browser_test_manager import LaunchBrowserTestManager

class Test_T001_Launch_Browser:

    def test_launch_browser(self, test_config):
     
        launch_browser_test_mng = LaunchBrowserTestManager(test_config['browser'], test_config['url'])
        
        # Execute Launch Browser Test.
        assert launch_browser_test_mng.execute_test(), "Browser launch was not successful."

test_T002_user_login.py

from cashsite_admin_pageobjects.user_login_test.user_login_test_manager import UserLogInTestManager

class Test_T002_User_Login:

    async def test_user_login(self, test_config) -> None:
        browser = test_config['browser']
        url = test_config['url']

        user_login_test_mng = UserLogInTestManager(browser, url)

        # Execute User Login Test.
        assert await user_login_test_mng.execute_test(), "User login was not successful."
© www.soinside.com 2019 - 2024. All rights reserved.