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?
1. If you want to make a personal open-source contribution, you may use Docker free of charge and follow the [official guide](https://docs.docker.com/get-docker/). 2. 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](https://github.com/abiosoft/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. -
Build and start an image with browsers:
npm run e2e:build-browsers && npm run e2e:launch-browsers
-
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