add contents

This commit is contained in:
Trevor Batley
2025-10-09 15:04:29 +11:00
parent 170362eec1
commit bce7dd054a
2537 changed files with 301282 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
Running tests
=============
TL;DR: from the `_test` directory, run either `./run-fast-test.sh` or `./run-exhaustive-tests.sh`
More details:
Tests can be run in two different ways: locally, or in Docker images
* Running locally will run the tests only once, against your local php version.
* Running in Docker images will run the tests once in each images, so it's slower.
But each image has a different version of php, so it can catch more regression.
Running the tests locally
-------------------------
### Requirements
* Java and maven
* Firefox
* A web server with PHP
### How it works
`run_fast_test.sh` will:
* Download Dokuwiki (and cache it locally)
* Install it on your local web server along with some test pages
(it will do it as root to ensure it can write)
* Download the selenium driver
* Use maven to run selenium tests
(if all tests fails it's probably because the selenium maven plugin or the
selenium driver is outdated. Updating both to the latest version will likely
fix the issue)
Optionally, you can also generate a dashboard to get more detailled results with
mvn site
firefox target/site/surefire-report.html
Running the tests on Docker
---------------------------
### Requirements
* Java and maven
* Firefox
* [Docker](http://docs.docker.com/linux/started/)
* [GNU parallel](http://www.gnu.org/software/parallel/)
### How it works
`run-exhaustive-tests.sh` will:
* Download Dokuwiki (and cache it locally)
* Build several docker images with different versions of PHP.
Each of those images will contain a wiki with some test pages
* Start containers with those images, and run selenium tests against them
### Current limitations
When tests fail on a container, the script doesn't stop the container
(hence the port remains busy, hence we can't launch the tests again)
To fix it, we should stop the container manually:
docker ps
docker stop <container-id>