@@ -226,6 +226,64 @@ This container expects /app/data to be a persistent, shared, writable
226226directory owned by uid 10001. This must be a shared (NFS/EFS/etc) volume
227227between all nodes.
228228
229+ ## Running the Test Suites
230+
231+ The ` docker/run-tests-in-docker.sh ` script builds a test image and runs a
232+ suite inside it. It takes a suite name as its first argument, or prompts
233+ with a menu if run with no arguments.
234+
235+ | Option | Suite | What it runs |
236+ | --- | --- | --- |
237+ | sanity | ` test_sanity ` | Static and style checks under ` t/ ` |
238+ | mysql | ` test_bmo ` | Perl suite (` t/bmo/*.t ` ) against MySQL. Default. |
239+ | pg | ` test_bmo ` | Perl suite against PostgreSQL |
240+ | sqlite | ` test_bmo ` | Perl suite against SQLite |
241+ | mariadb | ` test_bmo ` | Perl suite against MariaDB |
242+ | selenium | ` test_selenium ` | Browser suite (` qa/t/test_*.t ` ) |
243+ | webservices | ` test_webservices ` | API suite (` qa/t/{webservice,rest}_*.t ` ) |
244+ | release | ` test_bmo ` | Release checks |
245+
246+ Example:
247+
248+ ``` bash
249+ bash docker/run-tests-in-docker.sh selenium
250+ ```
251+
252+ ### Selenium and webservice suites
253+
254+ Both suites are driven by ` scripts/entrypoint.pl ` , which loads test data,
255+ starts httpd inside the container, and then runs ` prove ` against
256+ ` /app/qa/t ` . They use the MySQL compose stack
257+ (` docker-compose.test-mysql.yml ` ), which adds a
258+ ` selenium/standalone-firefox:3.141.59 ` service with a 512m ` shm_size ` .
259+ The browser is reached over ` TWD_HOST ` , ` TWD_PORT ` and ` TWD_BROWSER ` ,
260+ with QA configuration read from ` .github/selenium_test.conf ` .
261+
262+ These suites are intentionally not part of the GitHub Actions workflow.
263+ The full browser run takes roughly 30 minutes, which is too slow for a
264+ merge gate, so it stays available through the container only.
265+
266+ ` test_selenium ` and ` test_webservices ` take no file arguments, so they
267+ always run their full glob. A single file can be run with ` prove `
268+ directly, but the QA tests require the httpd and the loaded test data
269+ that these commands set up, so a bare single-file run will fail unless
270+ that environment is already in place.
271+
272+ ### Known failures
273+
274+ - ` qa/t/test_create_user_accounts.t ` exercises the account creation
275+ flow that is being reworked to separate login names from email
276+ addresses. Failures there are expected until that work lands.
277+
278+ - ` qa/t/test_edit_products_properties.t ` has been seen to fail one
279+ assertion intermittently while the product change it checks is
280+ recorded correctly in the audit log. Re-run before investigating.
281+
282+
283+
284+
285+
286+
229287## Administrative Tasks
230288
231289### Generating cpanfile and cpanfile.snapshot files
0 commit comments