Skip to content

jfgreffier/playwright-ng-schematics

Repository files navigation

Playwright Angular Schematic

NPM Version Playwright version Awesome

Adds Playwright Test to your Angular project

  • Installs Playwright Test
  • Set up ng e2e for you
  • Adds configuration to angular.json for easy integration into your existing project
  • ng generate e2e tests

demo of ng e2e installing Playwright, then running end-to-end tests

Installation

Run the following to add Playwright to your Angular project. ng add will pick the correct version of this schematic automatically

ng add playwright-ng-schematics

Once installed, you can run the tests

npm run e2e

Requirements

Angular 18+

Usage

Run tests

You can also use the Angular CLI ng to run your tests

ng e2e

You can use almost the same command-line interface options that exist for Playwright (see Playwright Docs or use ng e2e --help), such as UI mode

ng e2e --ui # or npm run e2e -- --ui

To specify particular test files, usually done like this npx playwright test tests/todo-page/ tests/landing-page/, you have to prepend the --files argument.

ng e2e --files tests/todo-page/ --files tests/landing-page/

The -c option is used to choose an Angular configuration. If you also want to specify a Playwright configuration, use --config instead.

Start an Angular development server

If a devServerTarget option is specified, the builder will launch an Angular server and will automatically set the PLAYWRIGHT_TEST_BASE_URL environment variable.

 "e2e": { "builder": "playwright-ng-schematics:playwright", "options": { "devServerTarget": "my-app:serve", "ui": true }, "configurations": { "production": { "devServerTarget": "my-app:serve:production" } } }

You still can make use of Playwright's baseURL option and mix it with PLAYWRIGHT_TEST_BASE_URL env variable.
The example below shows projects using PLAYWRIGHT_TEST_BASE_URL (set by devServerTarget) or another base URL.

 // ... projects: [ { name: 'chromium', use: { ...devices['Desktop Chrome'], baseURL: process.env['PLAYWRIGHT_TEST_BASE_URL'] }, }, { name: 'firefox', use: { ...devices['Desktop Firefox'], baseURL: 'http://example.com' }, }, ]

Create a test file

Create a new empty test

ng generate playwright-ng-schematics:e2e "<TestName>"

or with CLI prompt of the name

ng generate playwright-ng-schematics:e2e

Migrating from Protractor

Still using Protractor ?

Read the Migrating from Protractor guide on the official Playwright website.

Contribute

  • Small, incremental changes are easier to review.
  • Conventional Commits. NO EMOJI

License

This project is licensed under an Apache-2.0 license.

About

Adds Playwright Test to your Angular project

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •