This document is currently a work in progress and is not yet comprehensive. Additional info will be added over time.
End-to-end testing of html-reporter consists of two stages: generating fixture reports using different tools and tests, then running hermione tests on these reports.
In order to make e2e/screenshot tests stable and reproducible across different environments, you need to launch browsers inside a Docker container.
-
Make sure you have Docker installed.
How to?
- If you want to make a personal open-source contribution, you may use Docker free of charge and follow the official guide.
- If you are acting on behalf of a company, you may not have access to Docker Desktop. In this case:
- On Linux, you may follow the official installation guide.
- On Mac, you may use colima as a replacement for Docker Desktop.
- On Windows, you may use Windows Subsystem for Linux to run the Docker CLI without the Desktop application.
-
Start an image with browsers:
npm run browsers:launch
-
Run e2e tests:
npm run e2e
End-to-end tests are divided into multiple workspaces:
test/func/packages
— packages needed for generating fixture reports, e.g. test html-reporter pluginstest/func/fixtures
— packages to generate fixture reportstest/func/tests
— hermione tests that run on fixture reports
If you want a finer-grained control over the process, the following commands may be useful:
npm run e2e:generate-fixtures
— generate fixture reports to run tests onnpm run --workspace=test/func/tests gui:plugins
— launch hermione GUI for theplugins
tests setnpm run e2e:test
— run e2e tests only, without building packages or generating fixtures
If you want to build an image with browsers you can use this command:
npm run browsers:build:local
If you use colima then you can follow these steps to build a multiplatform image:
- Install buildx
brew install docker-buildx
docker buildx install
- Start 2 instances
colima start --profile amd --arch amd
colima start --profile arm --arch arm
- Create a buildx context to use the created instances as nodes
docker buildx create --use --name custom colima-amd
docker buildx create --append --name custom colima-arm
- Build and publish an image
npm run browsers:build-and-push
Note: to use already created buildx instance, execute this command:
docker buildx use custom
To get the list of all colima instances you can use colima list
.
To use specific colima instance, you have to set DOCKER_HOST environment variable.
To get the desired value for DOCKER_HOST, use colima status [INSTANCE]
If you want to update chromedriver or chrome version, change the variables at the beginning of the Dockerfile.