-
Notifications
You must be signed in to change notification settings - Fork 39
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test: fix and refactor e2e tests (#506)
* test: fix and refactor e2e tests * test: introduce npm workspaces and fix tests * fix: add install-chromium script and update e2e tests
- Loading branch information
Showing
92 changed files
with
3,113 additions
and
1,908 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,43 @@ | ||
version: 2 | ||
jobs: | ||
build: | ||
working_directory: ~/html-reporter | ||
docker: | ||
- image: cimg/node:12.18-browsers | ||
- image: cimg/node:16.20-browsers | ||
environment: | ||
CHROME_VERSION: 116 | ||
SERVER_HOST: localhost | ||
|
||
steps: | ||
|
||
- checkout | ||
|
||
- run: npm install | ||
- run: npm ci | ||
- run: | ||
name: Build html-reporter | ||
|
||
command: npm run build | ||
- run: | ||
name: Download Chromium | ||
command: >- | ||
cd test/func/docker/browser-utils && | ||
npm ci && | ||
npm run install-chromium | ||
- run: | ||
name: Download Selenium | ||
command: sudo npm install selenium-standalone@6.17.0 -g | ||
command: npm install selenium-standalone@9.1.1 -g | ||
- run: | ||
name: Start Selenium | ||
command: selenium-standalone install && selenium-standalone start | ||
command: >- | ||
selenium-standalone install --drivers.chrome.version=$CHROME_VERSION && | ||
selenium-standalone start --drivers.chrome.version=$CHROME_VERSION | ||
background: true | ||
|
||
- run: | ||
name: Functional tests | ||
command: npm run test-func | ||
command: npm run e2e | ||
|
||
- store_artifacts: | ||
path: hermione-report/ | ||
destination: /hermione-report | ||
path: test/func/tests/reports/ | ||
destination: /reports |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Contribution guide | ||
|
||
> This document is currently a work in progress and is not yet comprehensive. | ||
> Additional info will be added over time. | ||
### Running e2e tests | ||
|
||
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. | ||
|
||
1. Make sure you have Docker installed. | ||
<details><summary>How to?</summary> | ||
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. | ||
</details> | ||
|
||
2. Build and start an image with browsers: | ||
``` | ||
npm run e2e:build-browsers && npm run e2e:launch-browsers | ||
``` | ||
3. Run e2e tests: | ||
```bash | ||
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 plugins | ||
- `test/func/fixtures` — packages to generate fixture reports | ||
- `test/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 on | ||
- `npm run --workspace=test/func/tests gui:plugins` — launch hermione GUI for the `plugins` tests set | ||
- `npm run e2e:test` — run e2e tests only, without building packages or generating fixtures |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.