Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/tests-backward-compat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ jobs:
# Run Codeception Tests.
- name: Run tests/${{ matrix.test-groups }}
working-directory: ${{ env.PLUGIN_DIR }}
run: php vendor/bin/codecept run tests/${{ matrix.test-groups }} --fail-fast
run: php vendor/bin/codecept run tests/${{ matrix.test-groups }} --env headless --fail-fast

# Artifacts are data generated by this workflow that we want to access, such as log files, screenshots, HTML output.
# The if: failure() directive means that this will run when the workflow fails e.g. if a test fails, which is needed
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ jobs:
# Run Codeception Tests.
- name: Run tests/${{ matrix.test-groups }}
working-directory: ${{ env.PLUGIN_DIR }}
run: php vendor/bin/codecept run tests/${{ matrix.test-groups }} --fail-fast
run: php vendor/bin/codecept run tests/${{ matrix.test-groups }} --env headless --fail-fast

# Artifacts are data generated by this workflow that we want to access, such as log files, screenshots, HTML output.
# The if: failure() directive means that this will run when the workflow fails e.g. if a test fails, which is needed
Expand Down
11 changes: 11 additions & 0 deletions TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,17 @@ To run a specific End to End test in a specific folder (for example, `ActivateDe
vendor/bin/codecept run EndtoEnd general/ActivateDeactivatePluginCest
```

### Headed vs. headless Chrome

End to End tests run Chrome in **headed** mode by default, so you can watch the browser as tests execute. This is useful when developing or debugging a test.

To run tests in headless mode (no visible browser window), pass `--env headless`:
```bash
vendor/bin/codecept run EndToEnd --env headless
```

GitHub Actions runs tests with `--env headless`. Headed mode is for local development only.

For a full list of available wp-browser and Codeception functions that can be used for testing, see:
- [wp-browser](https://wpbrowser.wptestkit.dev/modules)
- [Codeception](https://codeception.com/docs/AcceptanceTests)
Expand Down
26 changes: 24 additions & 2 deletions tests/EndToEnd.suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ modules:
capabilities:
"goog:chromeOptions":
args:
- "--headless"
- "--disable-gpu"
- "--disable-dev-shm-usage"
- "--disable-software-rasterizer"
Expand Down Expand Up @@ -84,4 +83,27 @@ modules:
wpRootFolder: '%WORDPRESS_ROOT_DIR%'
dbUrl: '%WORDPRESS_DB_URL%'
domain: '%WORDPRESS_DOMAIN%'


# Environments
#
# Run with `vendor/bin/codecept run EndToEnd --env headless` to run Chrome in
# headless mode (used by GitHub Actions). Without `--env headless`, Chrome runs
# in headed mode so a developer can watch tests execute locally.
env:
headless:
modules:
config:
lucatume\WPBrowser\Module\WPWebDriver:
capabilities:
"goog:chromeOptions":
args:
- "--headless"
- "--disable-gpu"
- "--disable-dev-shm-usage"
- "--disable-software-rasterizer"
- "--proxy-server='direct://'"
- "--proxy-bypass-list=*"
- "--no-sandbox"
- "--user-agent=%TEST_SITE_HTTP_USER_AGENT%"
prefs:
download.default_directory: '%WORDPRESS_ROOT_DIR%'
Loading