From e904b7954713991b6e5fb6c712c3b3a118c23197 Mon Sep 17 00:00:00 2001 From: shadowusr Date: Fri, 15 Sep 2023 04:45:32 +0300 Subject: [PATCH] test: fix and refactor e2e tests --- .circleci/config.yml | 30 +++++--- .gitignore | 1 + CONTRIBUTING.md | 31 ++++++++ package.json | 14 ++-- test/func/README.md | 29 -------- test/func/docker/.dockerignore | 1 + test/func/docker/Dockerfile | 20 ++++++ .../docker/browser-utils/download-chromium.js | 6 ++ test/func/docker/browser-utils/package.json | 9 +++ test/func/fixtures/cli.js | 56 +++++++++++++++ .../func/fixtures/failed-describe.hermione.js | 20 ------ test/func/fixtures/hermione/.hermione.conf.js | 44 ++++++++++++ .../hermione/failed-describe.hermione.js | 17 +++++ test/func/fixtures/{ => hermione}/index.html | 0 .../screens/a5c1fda/chrome/header.png | Bin 0 -> 6286 bytes .../screens/eea1754/chrome/header.png | Bin 0 -> 6286 bytes .../hermione/success-describe.hermione.js | 13 ++++ .../.hermione.conf.js} | 18 ++--- .../plugins/failed-describe.hermione.js | 17 +++++ .../html-reporter-plugins/.eslintrc.js | 0 .../basic/lib/color-border.css | 0 .../basic/lib/color-border.jsx | 0 .../html-reporter-plugins/basic/package.json | 0 .../basic/webpack.config.js | 0 .../menu-bar/lib/menu-bar-item.css | 0 .../menu-bar/lib/menu-bar-item.jsx | 0 .../menu-bar/package.json | 0 .../menu-bar/webpack.config.js | 0 .../redux-with-server/lib/color-border.css | 0 .../redux-with-server/lib/color-border.jsx | 0 .../redux-with-server/middleware.js | 0 .../redux-with-server/package.json | 0 .../redux-with-server/webpack.config.js | 0 .../redux/lib/color-border.css | 0 .../redux/lib/color-border.jsx | 0 .../html-reporter-plugins/redux/package.json | 0 .../redux/webpack.config.js | 0 test/func/fixtures/plugins/index.html | 60 ++++++++++++++++ .../plugins/success-describe.hermione.js | 13 ++++ .../screens/a5c1fda/chrome/header.png | Bin 8837 -> 0 bytes .../screens/eea1754/chrome/header.png | Bin 8837 -> 0 bytes .../fixtures/success-describe.hermione.js | 13 ---- .../html-reporter-tester/index.js | 3 - .../html-reporter-plugins/basic/plugin.js | 22 ------ .../html-reporter-plugins/menu-bar/plugin.js | 1 - .../redux-with-server/plugin.js | 1 - .../html-reporter-plugins/redux/plugin.js | 1 - test/func/main/.hermione.main.js | 63 ----------------- test/func/main/error-group.hermione.js | 18 ----- .../0b3271c/chrome/details content.png | Bin 6046 -> 0 bytes .../screens/8002bbb/chrome/error group.png | Bin 4491 -> 0 bytes .../main/screens/9daa823/chrome/summary.png | Bin 6692 -> 0 bytes test/func/main/tests-details.hermione.js | 25 ------- test/func/main/tests-header.hermione.js | 14 ---- .../plugins/tests-menu-bar-plugin.hermione.js | 22 ------ test/func/tests/.hermione.conf.js | 66 ++++++++++++++++++ test/func/tests/cli.js | 58 +++++++++++++++ .../func/tests/common/error-group.hermione.js | 25 +++++++ .../c0db305/chrome/details summary.png | Bin .../tests/common/tests-details.hermione.js | 26 +++++++ .../tests/common/tests-header.hermione.js | 32 +++++++++ .../{ => tests}/plugins/.hermione.plugins.js | 0 .../chrome/menu bar plugins clicked.png | Bin .../screens/5c90021/chrome/basic plugins.png | Bin .../972e9ff/chrome/menu bar plugins.png | Bin .../be4ff5b/chrome/basic plugins clicked.png | Bin .../d8c5b8a/chrome/redux plugin clicked.png | Bin .../plugins/tests-basic-plugin.hermione.js | 9 ++- .../plugins/tests-menu-bar-plugin.hermione.js | 20 ++++++ .../plugins/tests-redux-plugin.hermione.js | 9 ++- test/func/utils/constants.js | 2 + .../html-reporter-test-server/index.js | 0 .../html-reporter-test-server/package.json | 0 test/func/utils/html-reporter-tester/index.js | 3 + .../html-reporter-tester/package.json | 0 test/func/{utils.js => utils/index.js} | 0 76 files changed, 565 insertions(+), 267 deletions(-) create mode 100644 CONTRIBUTING.md delete mode 100644 test/func/README.md create mode 100644 test/func/docker/.dockerignore create mode 100644 test/func/docker/Dockerfile create mode 100644 test/func/docker/browser-utils/download-chromium.js create mode 100644 test/func/docker/browser-utils/package.json create mode 100644 test/func/fixtures/cli.js delete mode 100644 test/func/fixtures/failed-describe.hermione.js create mode 100644 test/func/fixtures/hermione/.hermione.conf.js create mode 100644 test/func/fixtures/hermione/failed-describe.hermione.js rename test/func/fixtures/{ => hermione}/index.html (100%) create mode 100644 test/func/fixtures/hermione/screens/a5c1fda/chrome/header.png create mode 100644 test/func/fixtures/hermione/screens/eea1754/chrome/header.png create mode 100644 test/func/fixtures/hermione/success-describe.hermione.js rename test/func/fixtures/{.hermione.fixtures.js => plugins/.hermione.conf.js} (87%) create mode 100644 test/func/fixtures/plugins/failed-describe.hermione.js rename test/func/{ => fixtures/plugins}/html-reporter-plugins/.eslintrc.js (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/basic/lib/color-border.css (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/basic/lib/color-border.jsx (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/basic/package.json (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/basic/webpack.config.js (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/menu-bar/lib/menu-bar-item.css (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/menu-bar/lib/menu-bar-item.jsx (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/menu-bar/package.json (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/menu-bar/webpack.config.js (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/redux-with-server/lib/color-border.css (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/redux-with-server/lib/color-border.jsx (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/redux-with-server/middleware.js (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/redux-with-server/package.json (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/redux-with-server/webpack.config.js (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/redux/lib/color-border.css (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/redux/lib/color-border.jsx (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/redux/package.json (100%) rename test/func/{ => fixtures/plugins}/html-reporter-plugins/redux/webpack.config.js (100%) create mode 100644 test/func/fixtures/plugins/index.html create mode 100644 test/func/fixtures/plugins/success-describe.hermione.js delete mode 100644 test/func/fixtures/screens/a5c1fda/chrome/header.png delete mode 100644 test/func/fixtures/screens/eea1754/chrome/header.png delete mode 100644 test/func/fixtures/success-describe.hermione.js delete mode 100644 test/func/hermione-plugins/html-reporter-tester/index.js delete mode 100644 test/func/html-reporter-plugins/basic/plugin.js delete mode 100644 test/func/html-reporter-plugins/menu-bar/plugin.js delete mode 100644 test/func/html-reporter-plugins/redux-with-server/plugin.js delete mode 100644 test/func/html-reporter-plugins/redux/plugin.js delete mode 100644 test/func/main/.hermione.main.js delete mode 100644 test/func/main/error-group.hermione.js delete mode 100644 test/func/main/screens/0b3271c/chrome/details content.png delete mode 100644 test/func/main/screens/8002bbb/chrome/error group.png delete mode 100644 test/func/main/screens/9daa823/chrome/summary.png delete mode 100644 test/func/main/tests-details.hermione.js delete mode 100644 test/func/main/tests-header.hermione.js delete mode 100644 test/func/plugins/tests-menu-bar-plugin.hermione.js create mode 100644 test/func/tests/.hermione.conf.js create mode 100644 test/func/tests/cli.js create mode 100644 test/func/tests/common/error-group.hermione.js rename test/func/{main => tests/common}/screens/c0db305/chrome/details summary.png (100%) create mode 100644 test/func/tests/common/tests-details.hermione.js create mode 100644 test/func/tests/common/tests-header.hermione.js rename test/func/{ => tests}/plugins/.hermione.plugins.js (100%) rename test/func/{ => tests}/plugins/screens/3144090/chrome/menu bar plugins clicked.png (100%) rename test/func/{ => tests}/plugins/screens/5c90021/chrome/basic plugins.png (100%) rename test/func/{ => tests}/plugins/screens/972e9ff/chrome/menu bar plugins.png (100%) rename test/func/{ => tests}/plugins/screens/be4ff5b/chrome/basic plugins clicked.png (100%) rename test/func/{ => tests}/plugins/screens/d8c5b8a/chrome/redux plugin clicked.png (100%) rename test/func/{ => tests}/plugins/tests-basic-plugin.hermione.js (75%) create mode 100644 test/func/tests/plugins/tests-menu-bar-plugin.hermione.js rename test/func/{ => tests}/plugins/tests-redux-plugin.hermione.js (63%) create mode 100644 test/func/utils/constants.js rename test/func/{hermione-plugins => utils}/html-reporter-test-server/index.js (100%) rename test/func/{hermione-plugins => utils}/html-reporter-test-server/package.json (100%) create mode 100644 test/func/utils/html-reporter-tester/index.js rename test/func/{hermione-plugins => utils}/html-reporter-tester/package.json (100%) rename test/func/{utils.js => utils/index.js} (100%) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1c85384a7..50818a567 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,25 +2,39 @@ version: 2 jobs: build: docker: - - image: cimg/node:12.18-browsers + - image: cimg/node:16.20-browsers steps: - - checkout + - checkout: + path: 'html-reporter' - - run: npm install + - run: cd html-reporter && npm ci + + - run: + name: Download Chromium + command: >- + cd test/func/docker/browser-utils && + npm ci && + CHROME_PATH=$(node download-chromium.js |& grep '^/home') && + CHROME_PATH=$(dirname $CHROME_PATH) && + mkdir ~/browsers && + mv $CHROME_PATH ~/browsers/chrome-linux + cd ~/html-reporter - 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=116 && + selenium-standalone start --drivers.chrome.version=116 background: true - run: name: Functional tests - command: npm run test-func + command: npm run e2e - store_artifacts: - path: hermione-report/ - destination: /hermione-report + path: reports/ + destination: /reports diff --git a/.gitignore b/.gitignore index 02378673b..99ba1f1fe 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ sqlite.db hermione-report /test/func/fixtures/report +test/func/fixtures/plugins/html-reporter-plugins/*/plugin.js diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..dddd06ac7 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,31 @@ +# 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. +
+2. Run e2e tests: + ```bash + npm run e2e + ``` + +If you want a finer-grained control over the process, the following commands are available: +- `npm run e2e:build-browsers` — build Docker image with browsers +- `npm run e2e:launch-browsers` — launch selenium standalone server inside Docker +- `npm run e2e:generate-fixture-report` — generate fixture report to run tests on +- `npm run e2e:test` — run e2e tests diff --git a/package.json b/package.json index 37f3dc482..6bfbb08f2 100644 --- a/package.json +++ b/package.json @@ -16,17 +16,14 @@ "copy-static": "copyfiles 'lib/static/icons/*' .npmignore build", "check-types": "tsc --project tsconfig.spec.json", "coverage": "nyc npm run test-unit", + "e2e": "npm run e2e:launch-browsers && npm run e2e:generate-fixture-report -- --all && npm run e2e:test -- --all", + "e2e:build-browsers": "docker build -f test/func/docker/Dockerfile -t html-reporter-browsers:0.0.1 test/func/docker", + "e2e:generate-fixture-report": "node test/func/fixtures/cli.js", + "e2e:launch-browsers": "docker run -it --rm -p 4444:4444 html-reporter-browsers:0.0.1", + "e2e:test": "node test/func/tests/cli.js", "lint": "eslint .", "test": "npm run lint && npm run test-unit && npm run check-types", "test-unit": "cross-env NODE_ENV=test mocha test/unit", - "test-func": "npm run test-func-main && npm run test-func-plugins", - "test-func-main": "npm run make-main-fixtures; cross-env NODE_ENV=test hermione", - "test-func-plugins": "npm run make-plugins-fixtures; cross-env NODE_ENV=test hermione -c test/func/plugins/.hermione.plugins.js", - "make-main-fixtures": "npm run clean-fixtures && cross-env NODE_ENV=test hermione -c test/func/fixtures/.hermione.fixtures.js", - "make-plugins-fixtures": "npm run clean-fixtures && cross-env NODE_ENV=test html_reporter_plugins_enabled=true hermione -c test/func/fixtures/.hermione.fixtures.js", - "make-main-fixtures-gui": "npm run make-main-fixtures -- gui", - "make-plugins-fixtures-gui": "npm run make-plugins-fixtures -- gui", - "clean-fixtures": "rimraf test/func/fixtures/report", "precommit": "npm run lint", "prepublishOnly": "npm run build", "start": "NODE_ENV=development webpack serve --config=webpack.dev.js --progress", @@ -127,7 +124,6 @@ "fork-ts-checker-webpack-plugin": "^6.5.3", "hermione": "^8.0.0-beta.2", "hermione-global-hook": "^1.0.1", - "hermione-headless-chrome": "0.0.2", "html-react-parser": "^0.4.0", "html-reporter-basic-plugin": "file:test/func/html-reporter-plugins/basic", "html-reporter-menu-bar-plugin": "file:test/func/html-reporter-plugins/menu-bar", diff --git a/test/func/README.md b/test/func/README.md deleted file mode 100644 index c23fd86f8..000000000 --- a/test/func/README.md +++ /dev/null @@ -1,29 +0,0 @@ -functional tests for html-reporter -================================== - -Directories description: - -**main** - contains main set of suites for basic html-reporter features testing. - -```sh -# To run functional tests on html-reporter main features -> npm run test-func-main -``` - -**plugins** - set of suites for html-reporter plugins testing. - -```sh -# To run functional tests on html-reporter plugins feature -> npm run test-func-plugins -``` - -```sh -# To run functional tests on both main features & html-reporter plugins feature -> npm run test-func -``` - -**fixtures** - common set of fixture example tests to generate report for further functional tests. - -**hermione-plugins** - _hermione_ helper plugins to facilitate the functional tests. - -**html-reporter-plugins** - _html-reporter_ plugins for functional tests. diff --git a/test/func/docker/.dockerignore b/test/func/docker/.dockerignore new file mode 100644 index 000000000..cf7098890 --- /dev/null +++ b/test/func/docker/.dockerignore @@ -0,0 +1 @@ +**/node_modules diff --git a/test/func/docker/Dockerfile b/test/func/docker/Dockerfile new file mode 100644 index 000000000..b7d97ab02 --- /dev/null +++ b/test/func/docker/Dockerfile @@ -0,0 +1,20 @@ +FROM cimg/node:16.20-browsers + +ENV CHROME_VERSION=116 + +USER circleci + +COPY --chown=circleci browser-utils browser-utils +WORKDIR browser-utils + +RUN npm ci && \ + # The download script outputs progress messages, but we need only final path, hence we filter output here + CHROME_PATH=$(node ./download-chromium.js |& grep '^/home') && \ + CHROME_PATH=$(dirname $CHROME_PATH) && \ + mkdir ~/browsers && \ + mv $CHROME_PATH ~/browsers/chrome-linux + +RUN npm install selenium-standalone@9.1.1 -g && \ + selenium-standalone install --drivers.chrome.version=$CHROME_VERSION + +ENTRYPOINT selenium-standalone start --drivers.chrome.version=$CHROME_VERSION diff --git a/test/func/docker/browser-utils/download-chromium.js b/test/func/docker/browser-utils/download-chromium.js new file mode 100644 index 000000000..e366148c2 --- /dev/null +++ b/test/func/docker/browser-utils/download-chromium.js @@ -0,0 +1,6 @@ +const os = require('os'); +const path = require('path'); +const downloadChromium = require('hermione-headless-chrome/lib/download-chromium-by-version'); + +downloadChromium(process.env.CHROME_VERSION, path.join(os.homedir(), 'chrome-cache'), 10) + .then(chromePath => console.log(chromePath)); diff --git a/test/func/docker/browser-utils/package.json b/test/func/docker/browser-utils/package.json new file mode 100644 index 000000000..06b2a6687 --- /dev/null +++ b/test/func/docker/browser-utils/package.json @@ -0,0 +1,9 @@ +{ + "name": "browser-utils", + "version": "0.0.0", + "private": true, + "scripts": {}, + "dependencies": { + "hermione-headless-chrome": "1.1.0" + } +} diff --git a/test/func/fixtures/cli.js b/test/func/fixtures/cli.js new file mode 100644 index 000000000..af91f0b9a --- /dev/null +++ b/test/func/fixtures/cli.js @@ -0,0 +1,56 @@ +'use strict'; + +const fs = require('fs/promises'); +const path = require('path'); +const util = require('util'); +const _ = require('lodash'); +const inquirer = require('inquirer'); +const program = require('@gemini-testing/commander'); + +const exec = util.promisify(require('child_process').exec); + +const tasks = [ + {project: 'hermione', task: () => exec('npx hermione', {cwd: path.resolve(__dirname, 'hermione')})}, + {project: 'plugins', task: async () => { + const pluginNames = await fs.readdir('plugins'); + await Promise.all(pluginNames.map(pluginName => + exec('npm run build', {cwd: path.resolve(__dirname, 'hermione', pluginName)}) + )); + + return exec('npx hermione', {cwd: path.resolve(__dirname, 'plugins')}); + }} +]; +const allProjects = tasks.map(_.property('project')); + +(async () => { + program + .option('--all') + .option('-p --project [value]', '') + .parse(process.argv); + + let selectedProjects = []; + if (program.all) { + selectedProjects = allProjects; + } else if (program.project) { + selectedProjects = program.project; + } else { + const {projects} = await inquirer.prompt([{ + type: 'checkbox', + name: 'projects', + message: 'Select projects for which you want to generate fixture reports:', + choices: allProjects + }]); + + selectedProjects = projects; + } + + if (selectedProjects.some(p => !allProjects.includes(p))) { + throw new Error(`Project must be one of ${allProjects}`); + } + + await Promise.all(tasks + .filter(task => selectedProjects.includes(task.project)) + .map(task => task.task())); + + console.log('All done!'); +})(); diff --git a/test/func/fixtures/failed-describe.hermione.js b/test/func/fixtures/failed-describe.hermione.js deleted file mode 100644 index d688afe85..000000000 --- a/test/func/fixtures/failed-describe.hermione.js +++ /dev/null @@ -1,20 +0,0 @@ -describe('failed describe', function() { - it('succesfully passed test', function() { - return this.browser - .url('') - .then(() => assert.isTrue(true)); - }); - - it('test without screenshot', function() { - return this.browser - .url('') - .assertView('header', 'header'); - }); - - it('test with long error message', function() { - return this.browser - .then(() => { - throw new Error(`long_error_message ${'0123456789'.repeat(20)}\n message content`); - }); - }); -}); diff --git a/test/func/fixtures/hermione/.hermione.conf.js b/test/func/fixtures/hermione/.hermione.conf.js new file mode 100644 index 000000000..b0ef7cc3c --- /dev/null +++ b/test/func/fixtures/hermione/.hermione.conf.js @@ -0,0 +1,44 @@ +'use strict'; + +const {GRID_URL, CHROME_BINARY_PATH} = require('../../utils/constants'); +global.assert = require('chai').assert; + +const serverPort = 8080; +const fixturesPath = 'test/func/fixtures/hermione/report'; + +module.exports = { + gridUrl: GRID_URL, + baseUrl: `http://localhost:${serverPort}/test/func/fixtures/hermione/index.html`, + + screenshotsDir: 'test/func/fixtures/screens', + + sets: { + fixtures: { + files: 'test/func/fixtures/**/*.hermione.js' + } + }, + + browsers: { + chrome: { + windowSize: '1280x1024', + desiredCapabilities: { + browserName: 'chrome', + 'goog:chromeOptions': { + args: ['headless', 'no-sandbox'], + binary: CHROME_BINARY_PATH, + } + } + } + }, + + plugins: { + 'html-reporter-test-server': { + enabled: true, + port: serverPort + }, + 'html-reporter-tester': { + enabled: true, + path: fixturesPath, + }, + } +}; diff --git a/test/func/fixtures/hermione/failed-describe.hermione.js b/test/func/fixtures/hermione/failed-describe.hermione.js new file mode 100644 index 000000000..d7edb4ff1 --- /dev/null +++ b/test/func/fixtures/hermione/failed-describe.hermione.js @@ -0,0 +1,17 @@ +describe('failed describe', function() { + it('successfully passed test', async function() { + await this.browser.url(this.browser.options.baseUrl); + + assert.isTrue(true); + }); + + it('test without screenshot', async function() { + await this.browser.url(this.browser.options.baseUrl); + + await this.browser.assertView('header', 'header'); + }); + + it('test with long error message', async function() { + throw new Error(`long_error_message ${'0123456789'.repeat(20)}\n message content`); + }); +}); diff --git a/test/func/fixtures/index.html b/test/func/fixtures/hermione/index.html similarity index 100% rename from test/func/fixtures/index.html rename to test/func/fixtures/hermione/index.html diff --git a/test/func/fixtures/hermione/screens/a5c1fda/chrome/header.png b/test/func/fixtures/hermione/screens/a5c1fda/chrome/header.png new file mode 100644 index 0000000000000000000000000000000000000000..4d02d9fb6e31cdcb4441b9f3ec9c0c7eef1f1184 GIT binary patch literal 6286 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 LG%3FL`~Cj_JJ{5~ literal 0 HcmV?d00001 diff --git a/test/func/fixtures/hermione/screens/eea1754/chrome/header.png b/test/func/fixtures/hermione/screens/eea1754/chrome/header.png new file mode 100644 index 0000000000000000000000000000000000000000..4d02d9fb6e31cdcb4441b9f3ec9c0c7eef1f1184 GIT binary patch literal 6286 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 LG%3FL`~Cj_JJ{5~ literal 0 HcmV?d00001 diff --git a/test/func/fixtures/hermione/success-describe.hermione.js b/test/func/fixtures/hermione/success-describe.hermione.js new file mode 100644 index 000000000..5962aa1c7 --- /dev/null +++ b/test/func/fixtures/hermione/success-describe.hermione.js @@ -0,0 +1,13 @@ +describe('success describe', function() { + it('succesfully passed test', async function() { + await this.browser.url(this.browser.options.baseUrl); + + assert.isTrue(true); + }); + + it('test with screenshot', async function() { + await this.browser.url(this.browser.options.baseUrl); + + await this.browser.assertView('header', 'header'); + }); +}); diff --git a/test/func/fixtures/.hermione.fixtures.js b/test/func/fixtures/plugins/.hermione.conf.js similarity index 87% rename from test/func/fixtures/.hermione.fixtures.js rename to test/func/fixtures/plugins/.hermione.conf.js index 4fe8579a5..6fe9d41af 100644 --- a/test/func/fixtures/.hermione.fixtures.js +++ b/test/func/fixtures/plugins/.hermione.conf.js @@ -1,18 +1,20 @@ 'use strict'; +const {GRID_URL, CHROME_BINARY_PATH} = require('../../utils/constants'); global.assert = require('chai').assert; const serverPort = 8080; const fixturesPath = 'test/func/fixtures/report'; module.exports = { - baseUrl: `http://localhost:${serverPort}/test/func/fixtures/index.html`, + gridUrl: GRID_URL, + baseUrl: `http://localhost:${serverPort}/test/func/fixtures/plugins/index.html`, screenshotsDir: 'test/func/fixtures/screens', sets: { fixtures: { - files: 'test/func/fixtures/**/*.hermione.js' + files: 'test/func/fixtures/plugins/**/*.hermione.js' } }, @@ -20,7 +22,11 @@ module.exports = { chrome: { windowSize: '1280x1024', desiredCapabilities: { - browserName: 'chrome' + browserName: 'chrome', + 'goog:chromeOptions': { + args: ['headless', 'no-sandbox'], + binary: CHROME_BINARY_PATH, + } } } }, @@ -33,7 +39,7 @@ module.exports = { 'html-reporter-tester': { enabled: true, path: fixturesPath, - pluginsEnabled: false, + pluginsEnabled: true, plugins: [ { name: 'html-reporter-basic-plugin', @@ -90,9 +96,5 @@ module.exports = { } ] }, - 'hermione-headless-chrome': { - browserId: 'chrome', - version: '77' - } } }; diff --git a/test/func/fixtures/plugins/failed-describe.hermione.js b/test/func/fixtures/plugins/failed-describe.hermione.js new file mode 100644 index 000000000..d7edb4ff1 --- /dev/null +++ b/test/func/fixtures/plugins/failed-describe.hermione.js @@ -0,0 +1,17 @@ +describe('failed describe', function() { + it('successfully passed test', async function() { + await this.browser.url(this.browser.options.baseUrl); + + assert.isTrue(true); + }); + + it('test without screenshot', async function() { + await this.browser.url(this.browser.options.baseUrl); + + await this.browser.assertView('header', 'header'); + }); + + it('test with long error message', async function() { + throw new Error(`long_error_message ${'0123456789'.repeat(20)}\n message content`); + }); +}); diff --git a/test/func/html-reporter-plugins/.eslintrc.js b/test/func/fixtures/plugins/html-reporter-plugins/.eslintrc.js similarity index 100% rename from test/func/html-reporter-plugins/.eslintrc.js rename to test/func/fixtures/plugins/html-reporter-plugins/.eslintrc.js diff --git a/test/func/html-reporter-plugins/basic/lib/color-border.css b/test/func/fixtures/plugins/html-reporter-plugins/basic/lib/color-border.css similarity index 100% rename from test/func/html-reporter-plugins/basic/lib/color-border.css rename to test/func/fixtures/plugins/html-reporter-plugins/basic/lib/color-border.css diff --git a/test/func/html-reporter-plugins/basic/lib/color-border.jsx b/test/func/fixtures/plugins/html-reporter-plugins/basic/lib/color-border.jsx similarity index 100% rename from test/func/html-reporter-plugins/basic/lib/color-border.jsx rename to test/func/fixtures/plugins/html-reporter-plugins/basic/lib/color-border.jsx diff --git a/test/func/html-reporter-plugins/basic/package.json b/test/func/fixtures/plugins/html-reporter-plugins/basic/package.json similarity index 100% rename from test/func/html-reporter-plugins/basic/package.json rename to test/func/fixtures/plugins/html-reporter-plugins/basic/package.json diff --git a/test/func/html-reporter-plugins/basic/webpack.config.js b/test/func/fixtures/plugins/html-reporter-plugins/basic/webpack.config.js similarity index 100% rename from test/func/html-reporter-plugins/basic/webpack.config.js rename to test/func/fixtures/plugins/html-reporter-plugins/basic/webpack.config.js diff --git a/test/func/html-reporter-plugins/menu-bar/lib/menu-bar-item.css b/test/func/fixtures/plugins/html-reporter-plugins/menu-bar/lib/menu-bar-item.css similarity index 100% rename from test/func/html-reporter-plugins/menu-bar/lib/menu-bar-item.css rename to test/func/fixtures/plugins/html-reporter-plugins/menu-bar/lib/menu-bar-item.css diff --git a/test/func/html-reporter-plugins/menu-bar/lib/menu-bar-item.jsx b/test/func/fixtures/plugins/html-reporter-plugins/menu-bar/lib/menu-bar-item.jsx similarity index 100% rename from test/func/html-reporter-plugins/menu-bar/lib/menu-bar-item.jsx rename to test/func/fixtures/plugins/html-reporter-plugins/menu-bar/lib/menu-bar-item.jsx diff --git a/test/func/html-reporter-plugins/menu-bar/package.json b/test/func/fixtures/plugins/html-reporter-plugins/menu-bar/package.json similarity index 100% rename from test/func/html-reporter-plugins/menu-bar/package.json rename to test/func/fixtures/plugins/html-reporter-plugins/menu-bar/package.json diff --git a/test/func/html-reporter-plugins/menu-bar/webpack.config.js b/test/func/fixtures/plugins/html-reporter-plugins/menu-bar/webpack.config.js similarity index 100% rename from test/func/html-reporter-plugins/menu-bar/webpack.config.js rename to test/func/fixtures/plugins/html-reporter-plugins/menu-bar/webpack.config.js diff --git a/test/func/html-reporter-plugins/redux-with-server/lib/color-border.css b/test/func/fixtures/plugins/html-reporter-plugins/redux-with-server/lib/color-border.css similarity index 100% rename from test/func/html-reporter-plugins/redux-with-server/lib/color-border.css rename to test/func/fixtures/plugins/html-reporter-plugins/redux-with-server/lib/color-border.css diff --git a/test/func/html-reporter-plugins/redux-with-server/lib/color-border.jsx b/test/func/fixtures/plugins/html-reporter-plugins/redux-with-server/lib/color-border.jsx similarity index 100% rename from test/func/html-reporter-plugins/redux-with-server/lib/color-border.jsx rename to test/func/fixtures/plugins/html-reporter-plugins/redux-with-server/lib/color-border.jsx diff --git a/test/func/html-reporter-plugins/redux-with-server/middleware.js b/test/func/fixtures/plugins/html-reporter-plugins/redux-with-server/middleware.js similarity index 100% rename from test/func/html-reporter-plugins/redux-with-server/middleware.js rename to test/func/fixtures/plugins/html-reporter-plugins/redux-with-server/middleware.js diff --git a/test/func/html-reporter-plugins/redux-with-server/package.json b/test/func/fixtures/plugins/html-reporter-plugins/redux-with-server/package.json similarity index 100% rename from test/func/html-reporter-plugins/redux-with-server/package.json rename to test/func/fixtures/plugins/html-reporter-plugins/redux-with-server/package.json diff --git a/test/func/html-reporter-plugins/redux-with-server/webpack.config.js b/test/func/fixtures/plugins/html-reporter-plugins/redux-with-server/webpack.config.js similarity index 100% rename from test/func/html-reporter-plugins/redux-with-server/webpack.config.js rename to test/func/fixtures/plugins/html-reporter-plugins/redux-with-server/webpack.config.js diff --git a/test/func/html-reporter-plugins/redux/lib/color-border.css b/test/func/fixtures/plugins/html-reporter-plugins/redux/lib/color-border.css similarity index 100% rename from test/func/html-reporter-plugins/redux/lib/color-border.css rename to test/func/fixtures/plugins/html-reporter-plugins/redux/lib/color-border.css diff --git a/test/func/html-reporter-plugins/redux/lib/color-border.jsx b/test/func/fixtures/plugins/html-reporter-plugins/redux/lib/color-border.jsx similarity index 100% rename from test/func/html-reporter-plugins/redux/lib/color-border.jsx rename to test/func/fixtures/plugins/html-reporter-plugins/redux/lib/color-border.jsx diff --git a/test/func/html-reporter-plugins/redux/package.json b/test/func/fixtures/plugins/html-reporter-plugins/redux/package.json similarity index 100% rename from test/func/html-reporter-plugins/redux/package.json rename to test/func/fixtures/plugins/html-reporter-plugins/redux/package.json diff --git a/test/func/html-reporter-plugins/redux/webpack.config.js b/test/func/fixtures/plugins/html-reporter-plugins/redux/webpack.config.js similarity index 100% rename from test/func/html-reporter-plugins/redux/webpack.config.js rename to test/func/fixtures/plugins/html-reporter-plugins/redux/webpack.config.js diff --git a/test/func/fixtures/plugins/index.html b/test/func/fixtures/plugins/index.html new file mode 100644 index 000000000..412c348f3 --- /dev/null +++ b/test/func/fixtures/plugins/index.html @@ -0,0 +1,60 @@ + + + + + + + + +
+

Some header

+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +
+ +
+
+
Copyright ©
+ + + diff --git a/test/func/fixtures/plugins/success-describe.hermione.js b/test/func/fixtures/plugins/success-describe.hermione.js new file mode 100644 index 000000000..5962aa1c7 --- /dev/null +++ b/test/func/fixtures/plugins/success-describe.hermione.js @@ -0,0 +1,13 @@ +describe('success describe', function() { + it('succesfully passed test', async function() { + await this.browser.url(this.browser.options.baseUrl); + + assert.isTrue(true); + }); + + it('test with screenshot', async function() { + await this.browser.url(this.browser.options.baseUrl); + + await this.browser.assertView('header', 'header'); + }); +}); diff --git a/test/func/fixtures/screens/a5c1fda/chrome/header.png b/test/func/fixtures/screens/a5c1fda/chrome/header.png deleted file mode 100644 index 6f675add9d9c6424b67ce573765519e4a514dec5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8837 zcmdsdXHb)A^e^@mDeH=hpn$7bmMTg|z>4%HHI#^e7t{lV|$6w>a7P+1c3GI5pI7 z7_zY){0_fs|F$3g=O#Q^Vq-hWrg7t{k#7=}VVgK{@t8+(Tlg}gAu<)!z7eQ0 z)%xaUBpum4#qgJ0R!JSlPf;1Gp7JNScEMd){#E>Fp4-RrH~jii;P8h%zr6He&)&sf zUSL~f+jaTZS1w;+GlqoQ@qh4= zKQUN}if(*yJiDmqLblAUh!b6}PT!gj7QF0Rlpy1jMF^tj8RwgPO;z0?m2)1KZFa4g z#n*3ZhE9xM?JKgmP8}?3@nkHHHpsXPmeMOvnU$d_hIK!`in^}VxQ{**3|=3l7oB3g z@ks{X{>4B3_@k#T0ORtl=p*$3c9U|Bu|m`<9&qNDb$$a2N*`~EbZQLei^@opbMr61 zyJh>MEwLZBsTC(d%8vP9)n90}oI`$bT&~;i4C}Q&Frpib8@keO8Q1u@WREHd2?@0& z$Y>2!xb+W|ICyVw`7tZuHPvn$eOAY?XOQZnlO%8O;K75L?#vd_)ZWEAXN84tIJ74j zK#ea2{Ox|bKA3@??GsN{4lrqW%GokE!FoHkwI@V2Yi;fD1X-87oSYmZmxfU8{-yCI z+U6`i-ymJ>Cyi#@_3ox|oxeA2fsFj?ufH}Y;*dRWukLAhcJTYhurF1dG~Bls6&2M}Xr*-X)~#%jc~VV9mQG^U!+nSNxeyhuRxYG! zW80<(Z}aPH+$J$%=7!tb+ssRzhuxg%$-R9~@|TfN$K>wzJ;Wj9o`G{ zt@Y;^q|XOWvLjfp&vwNp_EZSGO{!rmLO^L|lQt`;*9VhOv-AIaC$Er@n^~g#pUJOMnN=^~o7ftEi8!&h_R#@u$F+G<*z@PNot+DQPPCkpl$10sFf*8Fi8Fn{FJnXq z+>q`V&s|(}cNr?zVfHP&kNv2Ku&S!6aiOKTIHFV^-lN_0&-3R*=oy})M>BJB&QG+) z-)3H-%5!36*sCMgDA$luJ$YQt^}MvS(E)BjBWUTdu`#2fJ6B^QtPo|6y@nx4=pJxx%Vou1rUkT+B=zee8#KXszo21|c zpk@fz6N@OlpSF7+dj>s8t$2(+>n_j3&z}cqC7=>$wvU}h|H_pR|CQ-ixL_^TQmc#K zWWyU~YG&=atPvI#W|*w#-GfJ}LSMJzem9Gguqt&UtH?O^G&6cNtNm$tDjPqJh+9_b zA3l6IizaSS-gDfoHVsN90z;HVi&`0vRCR29BNf{ZWe8@hk4OGoU5ypSA<8t}>S(c} zn}LCWJSR>R{B`|lb4!b;F@2jsmqB$43(j(q{)re;Ydd6 z1)GO`g;q{}oO&u78Iv8Usbd2jsyhXMm7-!|V#bVczDuQ;g%Rl;AJ(yX=~sJ#D|Ea) zbl0B!_eW~|T)F>%ha7DPogEDo((V7uuu@n5XLFV6^tbRj24DwK<(avA_ik;c`t`9x zw3*%(+>)eq?Rkn%GispNK9U$~%eQSNMzcJ0Y9 zq6AGx7y2zvqIz-+Vjo#X{g|E2r_J`yE;R{Z0(AAzGd&vQptWQhorRIQvO6Dl1BqP4 z6E^cGF<&v-3DO!LKYkR%iKef)0bn!vBy%xWlnMDe+YIFyr;4H8Of6m}@pz^>r1+`X zHimaCcc{7{jvqOa9(6_wAxICN$Lj09G%2)1`LzNE&a9EK^>n|F5BJRsRp4z>Z5p1U zfSY2cSljJNU(}d-C7^}Bbn}ld(Z;3s4RqdIxC&@MDK4tFD82s*kbOov(4k~N+HK^r z%W$QEP~hT&t*tG?-WxY=P$O4w?XkUJ7LBHsdVq_?nLGwfdc0AL^jQP6W5=mVUb0i(+XEJdv2ybyUf~u;PQ+ zg;S?bGr8Akd9qC~atV}*$b}1?hAy6-#n!rXj6_;pK$s54#Zp;6J%;vLC{Q+&q`2Cb1WgOwiXnb87NpPE=P^Sgdq z;luTxpYtkl!Y<18=9^0PdVvUocJG?g>wJ6l(d*Z*?GWckTt$3O7Mx`hWnG7JTuIfr z*PgKFA?pc!1?J;@N|cE3VXT{*TbUbqq`O)-Nq*F1U83&VSJruJKB2I^{Z=nk#Sw5N z;XwHim0$Y)OTmCSsTP}xdM!=O?tDDK(TtdWi#xkxsLaX1_ozchin2Ft#+WF>BWluG zI>`k)pR9y&9Q*ef^WFekE0pZiJZSycrk5F+T5*mWKPT8ZIE;Y*q=UD7wa6M~W^Xc= zFx0_JXrUqd0Fa@#m6umnef-*}Fau@x+W57+93ETO`J(`vW;)XzCCIrI+PB1-Z*r~9 z4cMZX)p`7QFQ?$;Z>U6)YybMvcyhTh4$&(;eDv_)G;%P#tw=2@LQpvm8oaaU-jC*2 z|FPf{W0Q7?I$PN4i-lQqtuA!xFH}e#QU~g@p#4%71c=4j+S*dU#fHTMB_@)9vd)J> zRii0U7C}=Tsd$hJaa7qvolMOb&%szFj4NXnx#Kw?CnBPG@+T@P{^}J=k-g+F1yYgPm7mt`w*C zf?tBpmn{G06$n&ZhYDRAv_>^uOfTg!6OvJ6GIobldKN$$3iZ_VIJ|BSP3b*ol6Gxh z9Ao}Mjfrv8NZ_&#kw5+I9DoXH!_n?iJZ*cjC9VVQ0wj&Oo)jD$jHpKE25(I8ZqVs9 zbIXHH`1puJEcFN}5H)7gi_(03KCLcb?Q2JeB;H>J<$Sfp{>3_s;xwMq{CFEkzMM{k;?yxbZW#5fs%WXYPXs zrM9?0V~-c(JSV}DykZ>-=_f)S;=i1j8(YUjEDbCe@ie8*$)X8{>Y$*!SD^g%?cF;~ zU#OSE0e+;vOHb!?0^4~1+x+aTlVYTKB}kVRG>68_a8*f*Y<~81-TK&bi6KG%>A$pW z-&o}<**0=C_?Vt!*PQHk_xJC0_eT-4UbKilYAdv@J1r&ERivE0wgB4jX^=1_Qgz#X zv-Zk^-C03+%c{HI2q@xNqLd(Z%Y(>|(T$Rh5*Q&kWg!OWYqo*xqy^dVt-uY48zE zD~k~|P3X%oW@^#PYAKif#CrMmEf!kWIr7VknHOiY$d(-G^_d?=)mCcT(UdM!f0Dbj z+M!vAbL`F2O;u7lxVX@|I}`}=qQLn3Cc#TM4eo(a25o7{gD-=&wq`ojp4?mFpr=I^ zWnEga3h{A7MMcHE_M}_^C7&GdF%(%3;E1C_LJOsBqweR0h5to!l!PS5-0on?3x7vT zggIvi-+TU(mo_a{sY4Ef@g zSq5#*w;G-CHgxx*EX{aCBA68<2lui18qTRlOy+lzrEcvnkgt?X@~X`pq{04uGT_}ne92i^}4D`wUSi=P&em0cz5U+jJq z7iXH#B=7e#1Er&{ub(hk>AUm}Qj*v#sf*EFxgPOl*w0}{iJ<$WZ9eS<^1i_*1ZKJ@J%mB zF7Mes9dLKm#|cA(pqiARRdX5VZx=|Q0nzir3R>PHBO?^q>{qQLSka3!iq@>fvg7<) z_rq}+$JgvU=kF*OnP#XTej%i4y=Om1Cj-Y*g z!Xdlc+@RdqTpUTT1Wt{KjEtNJZi*DrTdHy&{S>OSK>}iv}11vifa^N|U zZDg`7ktlsXQPzb=P*4Jk#cI(Y8qr=-sCy_T=Q>a_Usuy1aqL{&ef1o@<_l3sykaHnz3T>u3q2_`wXqrl0%y4zdUF`BZ|$fJxQV3 zb3!v=zl2qFDIg!EPs10(BWXQsm^={k+C*=1Gdn57;f#J6b|<*Slx>G-H@OYmrw0<> zbASNT3WzFUHC4+0L2GvBsL9ecYm9R;--G`{bOz*tifxae&n>~(O5v7iG@T`dlP5oP zuLDFqrS{{IasmzaN^;HK-;JGYnJ?I%2b<=RY8s_%-?!bCs)~I6r?}^U3VK?fsidu@ zUK{R6SUn35*Iuhi9%Zm5y;n@eFNVn3f8}X0t>i}ymga(#v|;KQ!$8Ox>iK0H?G#sm zVL69(wwCpXQV=8DLoB~7^1n7{;Z|qAvGPF)oWfCF-l;Fe#V=aF)q@&!&@@C8qs7W#Vqr9MQvkgC z(9R`nDdsi8pdG)KPF^+0)I6%?-PP5VaLFNJ!o$|qmIe_*3z>|})=mD2_A|G>H%B%_ z2H6ji9rfF-!2Oo-=#whkkkxH|5I@Gb)Yh}EpxM!K|DrGoB)uZwc)~d;_TOmpq#??( zptAp)2q&L?)GDtjjv*J>L`VRf6+0e%f=;RPrxhD1fsnPTbpKc?0p?5Df8`~~H4d5{ z6w<3c`+MfVG){d5QUc>29_-OgMOJx!?%q-Z8{n#_27whtrgU_4G;3Vl5M)zJd21l{ zh3+J4w)jCc&Ia@rGdO01#- z5QuO%xsKGLz6CcyyIGaLrBkfHuG+ zh?#driASL)TlpGRTm7*wg2|X;Puy8~Yw^xS&hHvKs?Eii1?!6aOpE$|r7q+qGlOOM zHan1{QKI!!JO*4VfD!v8vRz>5G8}dgRyD4yD1AXJs$C>-_0Q#5ih6^d)muJ>2|p(F zsoSiZsvNvJ;9v|{qW5&?RZ(g#|pECJf`4Db<9Ovd6+fx5A7j%pLob@WJ|G z`xZpXIYmVTFPK-Z#lN{w8fJDWRv|=9}V2 zf_&g1fx-|0t8?#bQ{Zj!*3T397Vt5%&ZGeh>j+&wCbn-eW2hei`q6ZOKrhU^K+L_J z4J>&MWPq@-1)LC++I{)M&(AMDf@veY7e+|-bVxr8lP`b;l!3IOW{z0p$fi6 zbk~T20b3^m(Cf?cacs%JXECCZ#fU-q-&ekt(I7Enfsk5 zwaON1mm@xX`eau!V1&1>Gospmecd%TP@>ax@X#UR>B!6P98!Z!tZICWp>pC2bOES| z0SH&7OHG#d_=M6?tFPw@y$-RjbnFd%w38KUjhaV1BZR=1By%&(4=NNA1t;h# zAd;}!x;o=xJB^8E52Yr|cq8XcH8n@b2jOfA2grJx#?8*&4LfJ__R21;Ln}Xj8iH8* zFENG)K6kJK!eC~e0@hzd|7{3UutKUbTK)v0#s{~#La{}KLwwG3 z^LZw?LDItKc;>Of<;#|!H)9*U?Lo{qk_kZxjTb!OScpa)GQAZkSZ0J>oim4{td;q- z0Ki>ldh7Z9C#*ToqM{HCnS)uJ0o}B~Osb{-%gEA5zyb=0RRmF*^QVO6{VFmDY$N8$ zlM5Uvg*|&_04`?qn4H^4&zIVw3#Swoh$cv0%K|q%;YdgH{P||s4JsB; z6@spJFkcA%1qert;1tR@M?Xy($4cmI1CQbwM%{-Q?j6t2VB;a#?tXHJw=|gH-*7cB zDCi7{u%FmmU|u2?+O;hqC1n7nz7tH}f&rG|a{;w7-Sst54sSz(SQF2Tp3+6n1O*0` z2GM;;wSKq3+ArSc0MG{d%!lgvZ&I?E{-x^}u(M%Pgn(6_Wt~6syr~z$f07_F3S#Aa z*g@Z({xCo>b1oGI3E<}_4^IZru74?3MMZ@f5~T$G)QFSeE5iZ=^v5BCQ3yDEIo+0` zY!Ruv`io6fY1K0rtnUw^6|Gs?`IC;$)RidoAxkDY8t-r-!=*+^f<%2Prj(14$Fdv_q z%7%KI1DKjZS`P%14X{pu%F1w%HP)~@phm9Qka*`9W#Gnk!Uc20%*@yIl*mEDM0JrN7@)Pnq@_QSO|3>SkC5 zeT(}YSW}#J9ReoQ7{X%RR26ZJJnOn@c-9FZ5@^00(3J7D-36531v2OeZ#cXA{P{Bl z41tKjyT|Z8@j7yxB(e{pX*5hY98`*eTgkJmDhA~<+J%5a4iLq;FnKfoK0Bi5J@Xn) zL*KzZ=4-}?_%D6t?S<^JCfhMZ-s2h*QUP&jKce+SPM*91-I>D-y}GvA7k^d7>6yQM xXDuf{t5cHo)n8_rjV=6t4%HHI#^e7t{lV|$6w>a7P+1c3GI5pI7 z7_zY){0_fs|F$3g=O#Q^Vq-hWrg7t{k#7=}VVgK{@t8+(Tlg}gAu<)!z7eQ0 z)%xaUBpum4#qgJ0R!JSlPf;1Gp7JNScEMd){#E>Fp4-RrH~jii;P8h%zr6He&)&sf zUSL~f+jaTZS1w;+GlqoQ@qh4= zKQUN}if(*yJiDmqLblAUh!b6}PT!gj7QF0Rlpy1jMF^tj8RwgPO;z0?m2)1KZFa4g z#n*3ZhE9xM?JKgmP8}?3@nkHHHpsXPmeMOvnU$d_hIK!`in^}VxQ{**3|=3l7oB3g z@ks{X{>4B3_@k#T0ORtl=p*$3c9U|Bu|m`<9&qNDb$$a2N*`~EbZQLei^@opbMr61 zyJh>MEwLZBsTC(d%8vP9)n90}oI`$bT&~;i4C}Q&Frpib8@keO8Q1u@WREHd2?@0& z$Y>2!xb+W|ICyVw`7tZuHPvn$eOAY?XOQZnlO%8O;K75L?#vd_)ZWEAXN84tIJ74j zK#ea2{Ox|bKA3@??GsN{4lrqW%GokE!FoHkwI@V2Yi;fD1X-87oSYmZmxfU8{-yCI z+U6`i-ymJ>Cyi#@_3ox|oxeA2fsFj?ufH}Y;*dRWukLAhcJTYhurF1dG~Bls6&2M}Xr*-X)~#%jc~VV9mQG^U!+nSNxeyhuRxYG! zW80<(Z}aPH+$J$%=7!tb+ssRzhuxg%$-R9~@|TfN$K>wzJ;Wj9o`G{ zt@Y;^q|XOWvLjfp&vwNp_EZSGO{!rmLO^L|lQt`;*9VhOv-AIaC$Er@n^~g#pUJOMnN=^~o7ftEi8!&h_R#@u$F+G<*z@PNot+DQPPCkpl$10sFf*8Fi8Fn{FJnXq z+>q`V&s|(}cNr?zVfHP&kNv2Ku&S!6aiOKTIHFV^-lN_0&-3R*=oy})M>BJB&QG+) z-)3H-%5!36*sCMgDA$luJ$YQt^}MvS(E)BjBWUTdu`#2fJ6B^QtPo|6y@nx4=pJxx%Vou1rUkT+B=zee8#KXszo21|c zpk@fz6N@OlpSF7+dj>s8t$2(+>n_j3&z}cqC7=>$wvU}h|H_pR|CQ-ixL_^TQmc#K zWWyU~YG&=atPvI#W|*w#-GfJ}LSMJzem9Gguqt&UtH?O^G&6cNtNm$tDjPqJh+9_b zA3l6IizaSS-gDfoHVsN90z;HVi&`0vRCR29BNf{ZWe8@hk4OGoU5ypSA<8t}>S(c} zn}LCWJSR>R{B`|lb4!b;F@2jsmqB$43(j(q{)re;Ydd6 z1)GO`g;q{}oO&u78Iv8Usbd2jsyhXMm7-!|V#bVczDuQ;g%Rl;AJ(yX=~sJ#D|Ea) zbl0B!_eW~|T)F>%ha7DPogEDo((V7uuu@n5XLFV6^tbRj24DwK<(avA_ik;c`t`9x zw3*%(+>)eq?Rkn%GispNK9U$~%eQSNMzcJ0Y9 zq6AGx7y2zvqIz-+Vjo#X{g|E2r_J`yE;R{Z0(AAzGd&vQptWQhorRIQvO6Dl1BqP4 z6E^cGF<&v-3DO!LKYkR%iKef)0bn!vBy%xWlnMDe+YIFyr;4H8Of6m}@pz^>r1+`X zHimaCcc{7{jvqOa9(6_wAxICN$Lj09G%2)1`LzNE&a9EK^>n|F5BJRsRp4z>Z5p1U zfSY2cSljJNU(}d-C7^}Bbn}ld(Z;3s4RqdIxC&@MDK4tFD82s*kbOov(4k~N+HK^r z%W$QEP~hT&t*tG?-WxY=P$O4w?XkUJ7LBHsdVq_?nLGwfdc0AL^jQP6W5=mVUb0i(+XEJdv2ybyUf~u;PQ+ zg;S?bGr8Akd9qC~atV}*$b}1?hAy6-#n!rXj6_;pK$s54#Zp;6J%;vLC{Q+&q`2Cb1WgOwiXnb87NpPE=P^Sgdq z;luTxpYtkl!Y<18=9^0PdVvUocJG?g>wJ6l(d*Z*?GWckTt$3O7Mx`hWnG7JTuIfr z*PgKFA?pc!1?J;@N|cE3VXT{*TbUbqq`O)-Nq*F1U83&VSJruJKB2I^{Z=nk#Sw5N z;XwHim0$Y)OTmCSsTP}xdM!=O?tDDK(TtdWi#xkxsLaX1_ozchin2Ft#+WF>BWluG zI>`k)pR9y&9Q*ef^WFekE0pZiJZSycrk5F+T5*mWKPT8ZIE;Y*q=UD7wa6M~W^Xc= zFx0_JXrUqd0Fa@#m6umnef-*}Fau@x+W57+93ETO`J(`vW;)XzCCIrI+PB1-Z*r~9 z4cMZX)p`7QFQ?$;Z>U6)YybMvcyhTh4$&(;eDv_)G;%P#tw=2@LQpvm8oaaU-jC*2 z|FPf{W0Q7?I$PN4i-lQqtuA!xFH}e#QU~g@p#4%71c=4j+S*dU#fHTMB_@)9vd)J> zRii0U7C}=Tsd$hJaa7qvolMOb&%szFj4NXnx#Kw?CnBPG@+T@P{^}J=k-g+F1yYgPm7mt`w*C zf?tBpmn{G06$n&ZhYDRAv_>^uOfTg!6OvJ6GIobldKN$$3iZ_VIJ|BSP3b*ol6Gxh z9Ao}Mjfrv8NZ_&#kw5+I9DoXH!_n?iJZ*cjC9VVQ0wj&Oo)jD$jHpKE25(I8ZqVs9 zbIXHH`1puJEcFN}5H)7gi_(03KCLcb?Q2JeB;H>J<$Sfp{>3_s;xwMq{CFEkzMM{k;?yxbZW#5fs%WXYPXs zrM9?0V~-c(JSV}DykZ>-=_f)S;=i1j8(YUjEDbCe@ie8*$)X8{>Y$*!SD^g%?cF;~ zU#OSE0e+;vOHb!?0^4~1+x+aTlVYTKB}kVRG>68_a8*f*Y<~81-TK&bi6KG%>A$pW z-&o}<**0=C_?Vt!*PQHk_xJC0_eT-4UbKilYAdv@J1r&ERivE0wgB4jX^=1_Qgz#X zv-Zk^-C03+%c{HI2q@xNqLd(Z%Y(>|(T$Rh5*Q&kWg!OWYqo*xqy^dVt-uY48zE zD~k~|P3X%oW@^#PYAKif#CrMmEf!kWIr7VknHOiY$d(-G^_d?=)mCcT(UdM!f0Dbj z+M!vAbL`F2O;u7lxVX@|I}`}=qQLn3Cc#TM4eo(a25o7{gD-=&wq`ojp4?mFpr=I^ zWnEga3h{A7MMcHE_M}_^C7&GdF%(%3;E1C_LJOsBqweR0h5to!l!PS5-0on?3x7vT zggIvi-+TU(mo_a{sY4Ef@g zSq5#*w;G-CHgxx*EX{aCBA68<2lui18qTRlOy+lzrEcvnkgt?X@~X`pq{04uGT_}ne92i^}4D`wUSi=P&em0cz5U+jJq z7iXH#B=7e#1Er&{ub(hk>AUm}Qj*v#sf*EFxgPOl*w0}{iJ<$WZ9eS<^1i_*1ZKJ@J%mB zF7Mes9dLKm#|cA(pqiARRdX5VZx=|Q0nzir3R>PHBO?^q>{qQLSka3!iq@>fvg7<) z_rq}+$JgvU=kF*OnP#XTej%i4y=Om1Cj-Y*g z!Xdlc+@RdqTpUTT1Wt{KjEtNJZi*DrTdHy&{S>OSK>}iv}11vifa^N|U zZDg`7ktlsXQPzb=P*4Jk#cI(Y8qr=-sCy_T=Q>a_Usuy1aqL{&ef1o@<_l3sykaHnz3T>u3q2_`wXqrl0%y4zdUF`BZ|$fJxQV3 zb3!v=zl2qFDIg!EPs10(BWXQsm^={k+C*=1Gdn57;f#J6b|<*Slx>G-H@OYmrw0<> zbASNT3WzFUHC4+0L2GvBsL9ecYm9R;--G`{bOz*tifxae&n>~(O5v7iG@T`dlP5oP zuLDFqrS{{IasmzaN^;HK-;JGYnJ?I%2b<=RY8s_%-?!bCs)~I6r?}^U3VK?fsidu@ zUK{R6SUn35*Iuhi9%Zm5y;n@eFNVn3f8}X0t>i}ymga(#v|;KQ!$8Ox>iK0H?G#sm zVL69(wwCpXQV=8DLoB~7^1n7{;Z|qAvGPF)oWfCF-l;Fe#V=aF)q@&!&@@C8qs7W#Vqr9MQvkgC z(9R`nDdsi8pdG)KPF^+0)I6%?-PP5VaLFNJ!o$|qmIe_*3z>|})=mD2_A|G>H%B%_ z2H6ji9rfF-!2Oo-=#whkkkxH|5I@Gb)Yh}EpxM!K|DrGoB)uZwc)~d;_TOmpq#??( zptAp)2q&L?)GDtjjv*J>L`VRf6+0e%f=;RPrxhD1fsnPTbpKc?0p?5Df8`~~H4d5{ z6w<3c`+MfVG){d5QUc>29_-OgMOJx!?%q-Z8{n#_27whtrgU_4G;3Vl5M)zJd21l{ zh3+J4w)jCc&Ia@rGdO01#- z5QuO%xsKGLz6CcyyIGaLrBkfHuG+ zh?#driASL)TlpGRTm7*wg2|X;Puy8~Yw^xS&hHvKs?Eii1?!6aOpE$|r7q+qGlOOM zHan1{QKI!!JO*4VfD!v8vRz>5G8}dgRyD4yD1AXJs$C>-_0Q#5ih6^d)muJ>2|p(F zsoSiZsvNvJ;9v|{qW5&?RZ(g#|pECJf`4Db<9Ovd6+fx5A7j%pLob@WJ|G z`xZpXIYmVTFPK-Z#lN{w8fJDWRv|=9}V2 zf_&g1fx-|0t8?#bQ{Zj!*3T397Vt5%&ZGeh>j+&wCbn-eW2hei`q6ZOKrhU^K+L_J z4J>&MWPq@-1)LC++I{)M&(AMDf@veY7e+|-bVxr8lP`b;l!3IOW{z0p$fi6 zbk~T20b3^m(Cf?cacs%JXECCZ#fU-q-&ekt(I7Enfsk5 zwaON1mm@xX`eau!V1&1>Gospmecd%TP@>ax@X#UR>B!6P98!Z!tZICWp>pC2bOES| z0SH&7OHG#d_=M6?tFPw@y$-RjbnFd%w38KUjhaV1BZR=1By%&(4=NNA1t;h# zAd;}!x;o=xJB^8E52Yr|cq8XcH8n@b2jOfA2grJx#?8*&4LfJ__R21;Ln}Xj8iH8* zFENG)K6kJK!eC~e0@hzd|7{3UutKUbTK)v0#s{~#La{}KLwwG3 z^LZw?LDItKc;>Of<;#|!H)9*U?Lo{qk_kZxjTb!OScpa)GQAZkSZ0J>oim4{td;q- z0Ki>ldh7Z9C#*ToqM{HCnS)uJ0o}B~Osb{-%gEA5zyb=0RRmF*^QVO6{VFmDY$N8$ zlM5Uvg*|&_04`?qn4H^4&zIVw3#Swoh$cv0%K|q%;YdgH{P||s4JsB; z6@spJFkcA%1qert;1tR@M?Xy($4cmI1CQbwM%{-Q?j6t2VB;a#?tXHJw=|gH-*7cB zDCi7{u%FmmU|u2?+O;hqC1n7nz7tH}f&rG|a{;w7-Sst54sSz(SQF2Tp3+6n1O*0` z2GM;;wSKq3+ArSc0MG{d%!lgvZ&I?E{-x^}u(M%Pgn(6_Wt~6syr~z$f07_F3S#Aa z*g@Z({xCo>b1oGI3E<}_4^IZru74?3MMZ@f5~T$G)QFSeE5iZ=^v5BCQ3yDEIo+0` zY!Ruv`io6fY1K0rtnUw^6|Gs?`IC;$)RidoAxkDY8t-r-!=*+^f<%2Prj(14$Fdv_q z%7%KI1DKjZS`P%14X{pu%F1w%HP)~@phm9Qka*`9W#Gnk!Uc20%*@yIl*mEDM0JrN7@)Pnq@_QSO|3>SkC5 zeT(}YSW}#J9ReoQ7{X%RR26ZJJnOn@c-9FZ5@^00(3J7D-36531v2OeZ#cXA{P{Bl z41tKjyT|Z8@j7yxB(e{pX*5hY98`*eTgkJmDhA~<+J%5a4iLq;FnKfoK0Bi5J@Xn) zL*KzZ=4-}?_%D6t?S<^JCfhMZ-s2h*QUP&jKce+SPM*91-I>D-y}GvA7k^d7>6yQM xXDuf{t5cHo)n8_rjV=6t assert.isTrue(true)); - }); - - it('test with screenshot', function() { - return this.browser - .url('') - .assertView('header', 'header'); - }); -}); diff --git a/test/func/hermione-plugins/html-reporter-tester/index.js b/test/func/hermione-plugins/html-reporter-tester/index.js deleted file mode 100644 index 96bcfe5de..000000000 --- a/test/func/hermione-plugins/html-reporter-tester/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../../../../hermione'); diff --git a/test/func/html-reporter-plugins/basic/plugin.js b/test/func/html-reporter-plugins/basic/plugin.js deleted file mode 100644 index e3eb62a56..000000000 --- a/test/func/html-reporter-plugins/basic/plugin.js +++ /dev/null @@ -1,22 +0,0 @@ -__hermione_html_reporter_register_plugin__(function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=42)}([function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){var n=e.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(10),o=n(30),i=n(15),u=Object.defineProperty;t.f=n(3)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return u(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){e.exports=!n(11)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(2),o=n(12);e.exports=n(3)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(56),o=n(17);e.exports=function(e){return r(o(e))}},function(e,t,n){var r=n(22)("wks"),o=n(14),i=n(0).Symbol,u="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=u&&i[e]||(u?i:o)("Symbol."+e))}).store=r},function(e,t,n){var r=n(0),o=n(1),i=n(29),u=n(5),a=n(4),c=function(e,t,n){var f,s,l,p=e&c.F,d=e&c.G,y=e&c.S,v=e&c.P,h=e&c.B,m=e&c.W,b=d?o:o[t]||(o[t]={}),g=b.prototype,_=d?r:y?r[t]:(r[t]||{}).prototype;d&&(n=t);for(f in n)(s=!p&&_&&void 0!==_[f])&&a(b,f)||(l=s?_[f]:n[f],b[f]=d&&"function"!=typeof _[f]?n[f]:h&&s?i(l,r):m&&_[f]==l?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(l):v&&"function"==typeof l?i(Function.call,l):l,v&&((b.virtual||(b.virtual={}))[f]=l,e&c.R&&g&&!g[f]&&u(g,f,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t,n){var r=n(6);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports=!0},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(6);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){e.exports={}},function(e,t,n){var r=n(10),o=n(55),i=n(23),u=n(21)("IE_PROTO"),a=function(){},c=function(){var e,t=n(31)("iframe"),r=i.length;for(t.style.display="none",n(60).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write("