.. | ||
src | ||
test/src | ||
tools | ||
.eslintignore | ||
.gitignore | ||
.mocharc.cjs | ||
CHANGELOG.md | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig.json | ||
tsconfig.spec.json |
Puppeteer Angular Schematic
Adds Puppeteer-based e2e tests to your Angular project.
Getting started
Run the command below in an Angular CLI app directory and follow the prompts.
Note this will add the schematic as a dependency to your project.
ng add @puppeteer/ng-schematics
Or you can use the same command followed by the options below.
Currently, this schematic supports the following test frameworks:
With the schematics installed you can run E2E tests:
ng e2e
Options
When adding schematics to your project you can to provide following options:
Option | Description | Value | Required |
---|---|---|---|
--isDefaultTester |
When true, replaces default ng e2e command. |
boolean |
true |
--exportConfig |
When true, creates an empty Puppeteer configuration file. (.puppeteerrc.cjs ) |
boolean |
true |
--testingFramework |
The testing framework to install along side Puppeteer. | "jasmine" , "jest" , "mocha" , "node" |
true |
--port |
The port to spawn server for E2E. If default is used ng serve and ng e2e will not run side-by-side. |
number |
4200 |
Creating a single test file
Puppeteer Angular Schematic exposes a method to create a single test file.
ng generate @puppeteer/ng-schematics:test "<TestName>"
Running test server and dev server at the same time
By default the E2E test will run the app on the same port as ng start
.
To avoid this you can specify the port the an the angular.json
Update either e2e
or puppeteer
(depending on the initial setup) to:
{
"e2e": {
"builder": "@puppeteer/ng-schematics:puppeteer",
"options": {
"commands": [...],
"devServerTarget": "sandbox:serve",
"testingFramework": "<TestingFramework>",
"port": 8080
},
...
}
Now update the E2E test file utils.ts
baseUrl to:
const baseUrl = 'http://localhost:8080';
Contributing
Check out our contributing guide to get an overview of what you need to develop in the Puppeteer repo.
Sandbox
For easier development we provide a script to auto-generate the Angular project to test against. Simply run:
npm run sandbox -- --init
After that to run @puppeteer/ng-schematics
against the Sandbox Angular project run:
npm run sandbox
# or to auto-build and then run schematics
npm run sandbox -- --build
To run the creating of single test schematic:
npm run sandbox:test
To create a multi project workspace use the following command
npm run sandbox -- --init --multi
Unit Testing
The schematics utilize @angular-devkit/schematics/testing
for verifying correct file creation and package.json
updates. To execute the test suit:
npm run test