Giter Club home page Giter Club logo

orange-opensource / uuv Goto Github PK

View Code? Open in Web Editor NEW
57.0 5.0 11.0 35.15 MB

Solution to facilitate the writing and execution of E2E tests understandable by any human

Home Page: https://orange-opensource.github.io/uuv/

License: MIT License

TypeScript 68.91% JavaScript 3.86% HTML 7.19% CSS 0.63% Gherkin 14.36% Shell 0.37% Kotlin 3.85% Dart 0.82%
a11y a11y-testing accessibility accessibility-testing cucumber cypress e2e e2e-testing e2e-tests end-to-end

uuv's Introduction

UUV Logo

UUV - User centric Usecases Validator

Discovering your application by usecase validation

Make test writing fast, understandable by any human understanding English or French.

Benefits

  • 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)

    Comparison

Criteria Cypress Playwright Testing library UUV
User centrism ✔️ ✔️ ✔️
Native accessibility ✔️ ✔️ ✔️
Easy setup configuration for BDD test ⚠️ ⚠️ ✔️
Understandable by everyone
(included non dev)
✔️

Syntax example

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"

Documentation

documentation

Libraries

UUV a11y npm library
UUV assistant npm library
UUV cypress npm library
UUV playwright npm library
UUV commons npm library

Concepts

The @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.

The problem

Automated software testing is a growing practice. It adds a better
level of quality on the code of an application by verifying non-regression or validating use cases.

The End to End test is a technique used to verify if an application (web,
mobile...) behaves as expected, from start to finish. It consists in verifying that the end user can complete the main usage scenarios of the application.

Unlike unit test which only aims to verifying the behavior of a function, or
the integration test which consists in making several modules of the application interact with each other in order to see their good cooperation, the End to End test allows to check from a browser (for example for web applications), the End to End test allows to check from a browser (for example for web applications) the behavior of your application according to a set of use cases.

During the E2E test, the validations consist most of the time in checking the elements returned to the user via the web browser (DOM)

Therefore, several additional questions arise:

  • How to clearly express use cases?
  • For omnichannel applications, how to check your application on different browsers and devices?
    For omnichannel applications, how do you check your application on different browsers and devices?**
  • How to perform relevant DOM checks from a user perspective

Our solution

To answer the above issues and many others, our solution is to set up a coherent ecosystem based on tools that are references in their field.

Ecosystème UUV

License


MIT license

This project is licensed under the terms of the MIT license.

Authors

uuv's People

Contributors

dependabot[bot] avatar geromegrignon avatar jpoehnelt avatar khaledatia25 avatar luifr10 avatar patrick-mota avatar renovate[bot] avatar semantic-release-bot avatar stanlee974 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

uuv's Issues

Fix after release 1.3.0

  • Fix packages readme.md
  • Add webpack for runner-cypress
  • Add npx playwright install into postinstall for runner-playwright

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • chore(runner-cypress): update dependency eslint-plugin-cypress to v2.15.2
  • chore(a11y): update dependency puppeteer to v22.7.1
  • chore(assistant): update react monorepo to v18.3.0 (@types/react, @types/react-dom, react, react-dom)
  • chore(deps): update dependency @theunderscorer/nx-semantic-release to v2.11.0
  • chore(deps): update dependency gradle to v8.7
  • chore(deps): update nrwl monorepo to v18.3.4 (@nrwl/eslint-plugin-nx, @nrwl/linter, @nx/jest, @nx/js, @nx/webpack, nx)
  • chore(a11y): update dependency webpack-dev-server to v5
  • chore(assistant): update dependency @types/testing-library__jest-dom to v6
  • chore(assistant-electron): update dependency electron to v30
  • chore(deps): update actions/checkout action to v4
  • chore(deps): update commitlint monorepo to v19 (major) (@commitlint/cli, @commitlint/config-conventional, @commitlint/config-nx-scopes)
  • chore(deps): update dependency @nxrocks/nx-flutter to v9
  • chore(runner-commons): update dependency eslint to v9
  • chore(runner-cypress): update dependency eslint-plugin-cypress to v3
  • chore(runner-playwright): update dependency chalk to v5
  • chore(runner-playwright): update dependency eslint-plugin-jest to v28
  • fix(a11y): update testing-library monorepo (major) (@testing-library/dom, @testing-library/react)
  • fix(deps): update dependency clsx to v2
  • fix(deps): update dependency primereact to v10
  • fix(deps): update dependency prism-react-renderer to v2

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

github-actions
.github/actions/nx-dart-test-runner/action.yml
  • subosito/flutter-action v2
.github/actions/nx-e2e-test-runner/action.yml
  • actions/cache v4
  • actions/download-artifact v4
  • actions/setup-node v4
.github/actions/nx-run-many/action.yml
  • actions/cache v4
  • actions/setup-node v4
.github/workflows/uuv-github-ci.yml
  • actions/checkout v4
  • actions/cache v4
  • actions/setup-node v4
  • actions/checkout v4
  • actions/setup-java v4
  • actions/upload-artifact v4
  • actions/upload-pages-artifact v3
  • actions/checkout v4
  • actions/checkout v4
  • browser-actions/setup-chrome v1
  • dorny/test-reporter v1.9.0
  • actions/checkout v4
  • dorny/test-reporter v1.9.0
  • actions/checkout v4
  • dorny/test-reporter v1.9.0
  • actions/checkout v4
  • dorny/test-reporter v1.9.0
  • actions/checkout v3
  • actions/checkout v4
  • actions/cache v4
  • actions/download-artifact v4
  • actions/setup-node v4
  • actions/upload-artifact v4
  • dorny/test-reporter v1.9.0
  • actions/checkout v4
  • actions/cache v4
  • actions/download-artifact v4
  • actions/upload-artifact v4
  • dorny/test-reporter v1.9.0
  • actions/checkout v4
  • subosito/flutter-action v2
  • actions/checkout v4
  • actions/download-artifact v4
  • stefanzweifel/git-auto-commit-action v5
  • actions/upload-artifact v4
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/setup-node v4
  • actions/checkout v4
  • actions/setup-java v4
  • actions/setup-node v4
  • actions/download-artifact v4
  • actions/deploy-pages v4
gitlabci
.gitlab-ci.yml
  • node 20.12.2-slim
  • node 20.12.2-slim
  • node 20.12.2-slim
  • node 20.12.2-slim
  • node 20.12.2-slim
  • node 20.12.2-slim
  • node 20.12.2-slim
gradle
settings.gradle.kts
packages/intellij-plugin/gradle.properties
packages/intellij-plugin/build.gradle.kts
  • org.jetbrains.kotlin.jvm 1.9.23
  • org.jetbrains.intellij 1.17.3
  • com.google.code.gson:gson 2.10.1
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.0
npm
package.json
  • tslib 2.6.2
  • @commitlint/cli ^18.6.1
  • @commitlint/config-conventional ^18.6.1
  • @commitlint/config-nx-scopes ^18.6.1
  • @google/semantic-release-replace-plugin 1.2.0
  • @jnxplus/nx-gradle ^0.45.0
  • @nrwl/eslint-plugin-nx 18.2.4
  • @nrwl/linter 18.2.4
  • @nx/jest 18.2.4
  • @nx/js 18.2.4
  • @nx/webpack 18.2.4
  • @nxrocks/nx-flutter ^8.1.0
  • @theunderscorer/nx-semantic-release 2.4.0
  • @types/jest 29.5.12
  • @types/node 20.12.7
  • @typescript-eslint/eslint-plugin 5.62.0
  • @typescript-eslint/parser 5.62.0
  • eslint 8.57.0
  • eslint-config-prettier 9.1.0
  • husky ^9.0.0
  • jest 29.7.0
  • jest-environment-jsdom 29.7.0
  • jest-environment-node ^29.4.1
  • nx 18.2.4
  • prettier 3.2.5
  • ts-jest 29.1.2
  • ts-node 10.9.2
  • typescript 4.9.5
  • node ^20.0.0
  • lodash ~4.17.21
packages/a11y/package.json
  • @testing-library/dom ^9.3.3
  • dom-accessibility-api ^0.6.3
  • emulate-tab ^1.2.1
  • jquery ^3.7.1
  • lodash ^4.17.21
  • rxjs ^7.8.1
  • @babel/preset-typescript ^7.23.3
  • babel-loader ^9.1.3
  • babel-plugin-lodash ^3.3.4
  • chokidar ^3.5.3
  • jest-junit ^16.0.0
  • jest-puppeteer ^10.0.0
  • puppeteer ^22.0.0
  • tslib ^2.3.0
  • webpack ^5.89.0
  • webpack-cli ^5.1.4
  • webpack-dev-server ^4.15.1
packages/assistant-electron/package.json
  • cross-env ^7.0.3
  • electron 29.3.1
  • electron-installer-zip 0.1.2
  • electron-packager 17.1.2
  • eslint 8.57.0
packages/assistant/package.json
  • @ant-design/icons ^5.0.1
  • @cucumber/cucumber 9.6.0
  • antd ^5.16.1
  • figlet 1.7.0
  • inspector-dom 0.1.1
  • playwright-chromium 1.43.1
  • @testing-library/jest-dom 6.4.2
  • @testing-library/react 14.3.1
  • @testing-library/user-event 14.5.2
  • @types/jest 29.5.12
  • @types/jquery 3.5.29
  • @types/node 20.12.7
  • @types/react 18.2.78
  • @types/react-dom 18.2.25
  • @types/styled-components 5.1.34
  • @types/testing-library__jest-dom 5.14.9
  • @typescript-eslint/eslint-plugin 5.62.0
  • @typescript-eslint/parser 5.62.0
  • dom-accessibility-api 0.6.3
  • eslint 8.57.0
  • eslint-plugin-react 7.34.1
  • jest ^29.5.0
  • jest-environment-jsdom ^29.5.0
  • minimist 1.2.8
  • react 18.2.0
  • react-dom 18.2.0
  • react-router-dom ^6.11.2
  • react-scripts ^5.0.1
  • replace-json-property 1.9.0
  • styled-components 6.1.8
  • ts-jest 29.1.2
  • ts-loader ^9.4.2
  • ts-node 10.9.2
  • typescript 4.9.5
packages/docs/package.json
  • @docusaurus/core 3.0.1
  • @docusaurus/preset-classic 3.0.1
  • @easyops-cn/docusaurus-search-local 0.40.1
  • @mdx-js/react 3.0.1
  • clsx 1.2.1
  • primereact ^9.6.2
  • prism-react-renderer 1.3.5
  • react 18.2.0
  • react-dom 18.2.0
  • react-highlight-words ^0.20.0
  • xhr2 ^0.2.1
  • @docusaurus/module-type-aliases 3.0.1
  • @tsconfig/docusaurus 2.0.3
  • handlebars ^4.7.8
  • remark-directive ^3.0.0
  • remark-parse ^11.0.0
  • ts-node ^10.9.2
  • typescript 4.9.5
  • unified ^11.0.4
  • node >=18.0
packages/runner-commons/package.json
  • chalk ^4.1.2
  • figlet 1.7.0
  • lodash ^4.17.21
  • minimist 1.2.8
  • @typescript-eslint/eslint-plugin 5.62.0
  • @typescript-eslint/parser 5.62.0
  • eslint 8.57.0
  • jest 29.7.0
packages/runner-cypress/package.json
  • @badeball/cypress-cucumber-preprocessor 16.0.3
  • @cypress/webpack-preprocessor 6.0.1
  • @testing-library/cypress 10.0.1
  • axe-core 4.9.0
  • chai-subset ^1.6.0
  • cucumber-json-report-formatter 0.1.4
  • cypress 12.17.4
  • cypress-axe 1.5.0
  • cypress-real-events ^1.10.0
  • is-admin 4.0.0
  • junit-report-merger ^6.0.3
  • multiple-cucumber-html-reporter 3.6.2
  • path-browserify ^1.0.1
  • ts-node 10.9.2
  • typescript 4.9.5
  • webpack 5.90.3
  • @types/minimist 1.2.5
  • @types/node 20.12.7
  • chalk ^4.1.2
  • cross-env 7.0.3
  • eslint-plugin-cypress 2.15.1
  • ts-loader 9.4.2
  • tsconfig-paths 4.2.0
packages/runner-playwright/package.json
  • @cucumber/cucumber 9.6.0
  • @cucumber/tag-expressions ^6.0.0
  • @playwright/test 1.43.1
  • axe-core 4.9.0
  • axe-playwright 2.0.1
  • chalk-table ^1.0.2
  • chokidar 3.5.3
  • cucumber-json-report-formatter 0.1.4
  • lodash ^4.17.21
  • multiple-cucumber-html-reporter 3.6.2
  • nanoid ^3.3.7
  • ts-node 10.9.2
  • typescript 4.9.5
  • @types/minimist 1.2.5
  • @types/node 20.12.7
  • chalk ^4.1.2
  • cross-env 7.0.3
  • eslint-plugin-cucumber 2.0.0
  • eslint-plugin-jest 27.9.0
  • eslint-plugin-playwright 0.22.2
  • ts-loader 9.4.2
  • tsconfig-paths 4.2.0
  • webpack 5.90.3
pub
packages/runner-flutter/pubspec.yaml
  • build ^2.2.1
  • build_config ^1.0.0
  • flutter
  • flutter_finder_usercentric ^1.0.0-beta.1
  • patrol_finders ^2.0.1+1
  • bdd_widget_test ^1.6.4
  • flutter_lints ^3.0.1
  • lints ^3.0.0
  • build_runner ^2.4.6
  • dart >=3.2.3 <4.0.0
  • flutter >=1.17.0

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.