diff --git a/.circleci/config.yml b/.circleci/config.yml
index 1c85384a7..32a2d8e1f 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -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
diff --git a/.eslintignore b/.eslintignore
index 2417646ed..b48a74c4a 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -5,6 +5,7 @@ hot
/lib/static/*.min.js
/lib/static/data.js
/lib/static/sql-wasm.js
-/test/func/fixtures/report
-/test/func/html-reporter-plugins/*/plugin.js
+/test/func/**/report
+/test/func/**/reports
+/test/func/packages/*/plugin.js
/hermione-report
diff --git a/.gitignore b/.gitignore
index 02378673b..5125047de 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,4 +22,6 @@ sqlite.db
.nyc_output
hermione-report
-/test/func/fixtures/report
+test/func/**/report
+test/func/**/reports
+test/func/packages/*/plugin.js
diff --git a/.hermione.conf.js b/.hermione.conf.js
deleted file mode 100644
index 4e3c76dcf..000000000
--- a/.hermione.conf.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./test/func/main/.hermione.main');
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 000000000..1cc7b2bac
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -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.
+ 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.
+