From 4f5cf5fd3db6de7ea02f553dfa5cd3e453a228ed Mon Sep 17 00:00:00 2001 From: keisuke-umezawa Date: Sun, 4 Jun 2023 15:00:25 +0900 Subject: [PATCH] Add settings for playwright-pytest --- .github/workflows/e2e-tests.yml | 50 +++++++++++++++++++++++++++++ e2e_tests/visual_regression_test.py | 21 ++++++++++++ requirements.txt | 1 + 3 files changed, 72 insertions(+) create mode 100644 .github/workflows/e2e-tests.yml create mode 100644 e2e_tests/visual_regression_test.py diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml new file mode 100644 index 00000000..8ffa920a --- /dev/null +++ b/.github/workflows/e2e-tests.yml @@ -0,0 +1,50 @@ +name: integration-tests +on: + pull_request: + branches: + - main + paths: + - '.github/workflows/integration-tests.yml' + - '**.py' + - '**.ts' + - '**.tsx' + - 'package.json' + - 'package-lock.json' + - 'tsconfig.json' +jobs: + test: + runs-on: ubuntu-20.04 + strategy: + matrix: + optuna-version: ['optuna==2.10.0', 'git+https://github.com/optuna/optuna.git'] + steps: + - uses: actions/checkout@v2 + + - name: Setup Node + uses: actions/setup-node@v2 + with: + node-version: '16' + - run: npm install + - run: npm run build:dev + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.8' + architecture: x64 + + - name: Setup Optuna ${{ matrix.optuna-version }} + run: | + python -m pip install --progress-bar off --upgrade pip setuptools + python -m pip install --progress-bar off --upgrade ${{ matrix.optuna-version }} + + - name: Install dependencies + run: | + python -m pip install --progress-bar off . + python -m pip install --progress-bar off pytest-playwright + + - name: Install the required browsers + run: playwright install + + - name: Run e2e tests + run: pytest e2e_tests diff --git a/e2e_tests/visual_regression_test.py b/e2e_tests/visual_regression_test.py new file mode 100644 index 00000000..5f108179 --- /dev/null +++ b/e2e_tests/visual_regression_test.py @@ -0,0 +1,21 @@ +import re +from playwright.sync_api import Page, expect + + +def test_homepage_has_Playwright_in_title_and_get_started_link_linking_to_the_intro_page(page: Page): + page.goto("https://playwright.dev/") + + # Expect a title "to contain" a substring. + expect(page).to_have_title(re.compile("Playwright")) + + # create a locator + get_started = page.get_by_role("link", name="Get started") + + # Expect an attribute "to be strictly equal" to the value. + expect(get_started).to_have_attribute("href", "/docs/intro") + + # Click the get started link. + get_started.click() + + # Expects the URL to contain intro. + expect(page).to_have_url(re.compile(".*intro")) diff --git a/requirements.txt b/requirements.txt index 25c37877..daab987f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,6 +17,7 @@ moto[s3] # visual regression tests pyppeteer +pytest-playwright # docs sphinx