diff --git a/pytest-playwright-asyncio/pytest_playwright_asyncio/pytest_playwright.py b/pytest-playwright-asyncio/pytest_playwright_asyncio/pytest_playwright.py index 0a47afb..a21e95c 100644 --- a/pytest-playwright-asyncio/pytest_playwright_asyncio/pytest_playwright.py +++ b/pytest-playwright-asyncio/pytest_playwright_asyncio/pytest_playwright.py @@ -92,7 +92,7 @@ def delete_output_dir(pytestconfig: Any) -> None: def pytest_generate_tests(metafunc: Any) -> None: if "browser_name" in metafunc.fixturenames: browsers = metafunc.config.option.browser or ["chromium"] - metafunc.parametrize("browser_name", browsers, scope="session") + metafunc.parametrize("browser_name", browsers, scope="session", indirect=True) def pytest_configure(config: Any) -> None: @@ -389,7 +389,10 @@ def is_chromium(browser_name: str) -> bool: @pytest.fixture(scope="session") -def browser_name(pytestconfig: Any) -> Optional[str]: +def browser_name(pytestconfig: Any, request: pytest.FixtureRequest) -> Optional[str]: + if hasattr(request, "param"): + return request.param + # When using unittest.TestCase it won't use pytest_generate_tests # For that we still try to give the user a slightly less feature-rich experience browser_names = pytestconfig.getoption("--browser") diff --git a/pytest-playwright/pytest_playwright/pytest_playwright.py b/pytest-playwright/pytest_playwright/pytest_playwright.py index fcca953..56c5352 100644 --- a/pytest-playwright/pytest_playwright/pytest_playwright.py +++ b/pytest-playwright/pytest_playwright/pytest_playwright.py @@ -89,7 +89,7 @@ def delete_output_dir(pytestconfig: Any) -> None: def pytest_generate_tests(metafunc: Any) -> None: if "browser_name" in metafunc.fixturenames: browsers = metafunc.config.option.browser or ["chromium"] - metafunc.parametrize("browser_name", browsers, scope="session") + metafunc.parametrize("browser_name", browsers, scope="session", indirect=True) def pytest_configure(config: Any) -> None: @@ -384,7 +384,10 @@ def is_chromium(browser_name: str) -> bool: @pytest.fixture(scope="session") -def browser_name(pytestconfig: Any) -> Optional[str]: +def browser_name(pytestconfig: Any, request: pytest.FixtureRequest) -> Optional[str]: + if hasattr(request, "param"): + return request.param + # When using unittest.TestCase it won't use pytest_generate_tests # For that we still try to give the user a slightly less feature-rich experience browser_names = pytestconfig.getoption("--browser")