https://github.com/kanocomputing/kano-web-tester
Runs front-end mocha tests using puppeteer
https://github.com/kanocomputing/kano-web-tester
dev-tools
Last synced: about 1 year ago
JSON representation
Runs front-end mocha tests using puppeteer
- Host: GitHub
- URL: https://github.com/kanocomputing/kano-web-tester
- Owner: KanoComputing
- Created: 2018-10-04T20:16:31.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-05-13T15:03:58.000Z (almost 7 years ago)
- Last Synced: 2025-01-13T12:45:59.172Z (about 1 year ago)
- Topics: dev-tools
- Language: JavaScript
- Size: 222 KB
- Stars: 2
- Watchers: 20
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
#
Web Tester
Runs front-end mocha tests using puppeteer
## Installation
The web tester should always be installed as a local dependency, and the binary using npm scripts.
This ensures that the required tools are a dependency of your project
Install with:
```
yarn add --dev @kano/web-tester
```
## Usage
Place your test files in a directory e.g. `test`. web-tester wil look for all .js files in a given directory.
Run your tests with either:
```
# run tests with puppeteer and print the results to the console
web-tester run **/*test.js
# Serve a web page that runs the tests
web-tester serve **/*test.js
# Generate a coverage report
web-tester cover **/*test.js
```
You can create a `.web-tester.conf.json` to configure both mocha and puppeteer:
```json
{
"mocha": {
"ui": "tdd"
},
"puppeteer": {
"slowMo": 1000
}
}
```
In your package.json add a test script as follow to automate your tests
```json
{
"scripts": {
"test-ci": "web-tester run ./test -r xunit > test-results.xml"
}
}
```
## Options
|Command|Options|
|---|---|
|`serve`|`--port`: Specifiy which port to use. Default: `8000`|
|`run`|`--no-headless`: Run puppeteer in no-headless mode. Displays the browser. Default: `false`|
| |`--reporter`, `-r`: Sepecify which reporter to use, `spec` or `xunit`. Default: `spec`|
|`cover`|`--no-headless`: Run puppeteer in no-headless mode. Displays the browser. Default: `false`|
| |`--reporter`, `-r`: Specify which reporter to use. All istanbul reporters are available. An additional `markdown` reporter is available to generate a markdown summary table. You can add multiple reports. Default: `text-summary`|
## Helpers
The default assertion library is `assert` from `chai`. You can access it with:
```js
import { assert } from '@kano/web-tester/helpers.js';
assert.equal(2, 2);
```
The `fixture` helper allows you to prepare HTML Templates, access their elements directly and takes care of adding/removing them from the DOM automatically:
```js
import { fixture } from '@kano/web-tester/helpers.js';
const basic = fixture`
`;
suite('my-el', () => {
test('constructor', () => {
// Returns the first element in the fixture.
// These will be removed at the end of the test
const el1 = basic();
const el2 = basic();
});
});
```