A solution to facilitate the writing and execution of E2E tests understandable by any human being(English or French) using cucumber(BDD) and cypress or playwright.
@uuv
library (User centric Usecases Validator) is an ecosystem that simplifies the writing of End to End tests in a BDD approach and a user-centric way.
With @uuv/assistant
, we can generate cucumber sentences that will use an execution engine like cypress with @uuv/cypress or playwright with @uuv/playwright.
- If used correctly, integrates accessibility from the development stage
- A living documentation is possible because we propose an unified language for developers and non-developers with a rich dictionary of ready-to-use sentences
- @uuv/assistant that facilitates the writing of tests by suggesting the most accessible sentences
- JetBrains Plugin that helps you to write and execute your UUV E2E tests from JetBrains IDEs
- Integrates several runtime engines: Cypress / Playwright
- User friendly and standardized execution report([example](https://e2e-test-quest.github.io/kata-e2e-uuv/
Criteria | Cypress | Playwright | Testing library | UUV |
---|---|---|---|---|
User centrism | ❌ | ✔️ | ✔️ | ✔️ |
Native accessibility | ❌ | ✔️ | ✔️ | ✔️ |
Easy setup configuration for BDD test | ➖ | ✔️ | ||
Understandable by everyone (included non dev) | ❌ | ❌ | ❌ | ✔️ |
With this dom example :
<body>
<h1>Result<h1>
</body>
we see that the sentence proposed by UUV is the most understandable of all
Library | Syntax |
---|---|
Cypress | cy.get('h1').contains('Result') |
Playwright | await expect(page.getByTitle('Result')).toHaveCount(1) |
Testing library | expect(screen.getByTitle(/Result/i)).toBeTruthy() |
UUV | Then I should see a title named "Result" |
npm install --save-dev @uuv/assistant
or
yarn add -D @uuv/assistant
To launch uuv assistant :
npx uuv-assistant --targetUrl=<targetUrl>
Name | Description | Example |
---|---|---|
targetUrl |
Target website url | https://e2e-test-quest.github.io/uuv/ |
Execute uuv-assistant.exe
from the unzipped folder
You can find test examples here : weather-app.feature
The dictionary is available in french and english. It can be accessed with this link:
This project is licensed under the terms of the MIT license.