npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@ui5/uiveri5

v1.49.12

Published

UIVeri5 is an E2E testing framework for UI5-based applications.

Downloads

10,126

Readme


UIVeri5 is deprecated and won’t be developed any further. Tests using UIVeri5 will continue to work in the foreseeable future. If you are looking for an alternative, you may consider: WDIO + WDI5


openui5

What is it

UIVeri5 is an E2E testing framework for UI5-based applications. It uses WebDriverJS to drive a real browser and interacts with your application as a real user would. UIVeri5 is heavily inspired by Protractor and brings most (and more) of its benefits to UI5 applications.

REUSE status

Benefits

  • Automatic synchronization with UI5 app rendering so there is no need to add waits and sleeps to your test. Tests are reliable by design.
  • Tests are written in synchronous manner, no callbacks, no promise chaining so are really simple to write and maintain.
  • Full power of webdriverjs, protractor and jasmine - deferred selectors, custom matchers, custom locators.
  • Control locators (OPA5 declarative matchers) allow locating and interacting with UI5 controls.
  • Does not depend on testability support in applications - works with autorefreshing views, resizing elements, animated transitions.
  • Declarative authentications - authentication flow over OAuth2 providers, etc.
  • Console operation, CI ready, fully configurable or IDE.
  • Covers full UI5 browser matrix: Chrome, Firefox, IE, Edge, Safari, iOS, Android.
  • Works with browser cloud provider like SauseLabs
  • Use generated snippets from Test Recorder that is built-in every UI5 app (from UI5 1.74)
  • Open-source, fork and modify to fit your specific neeeds.

Requirements

Configuration

UIVeri5 accepts a declarative configuration in a conf.js file. Configuration can be overridden with command-line arguments. All configuration options are explained in Configuration

Installation

Install globally:

$ npm install @ui5/uiveri5 -g

Usage

Create a test

Create a clean folder that will contain your test and configuration files. UIVeri5 uses Jasmine as a test runner so the test resides in a spec.js file. Put the declarative configuration in the conf.js file.

  • conf.js
exports.config = {
  profile: 'integration',

  baseUrl: 'https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/master-detail/webapp/test/mockServer.html',
};
  • masterdetail.spec.js
describe('masterdetail', function () {

  it('should load the app',function() {
    expect(browser.getTitle()).toBe('Master-Detail');
  });

  it('should display the details screen',function() {
    element(by.control({
      viewName: 'sap.ui.demo.masterdetail.view.Master',
      controlType: 'sap.m.ObjectListItem',
      properties: {
        title: 'Object 11'
      }}))
    .click();
  });

  it('should validate line items',function() {
    expect(element.all(by.control({
      viewName: 'sap.ui.demo.masterdetail.view.Detail',
      controlType:'sap.m.ColumnListItem'}))
    .count()).toBe(2);
  });
});

Run the test

Open console in the test folder and execute:

$ uiveri5

You will see the test execution in the console and an overview when the test completes. Check the target folder for a visual report with screenshots.

Usage hints

By default uiveri5 will discover all tests in current folder and execute them on localy started Chrome. All of those defaults could be modified either in conf.js or by providing command-line arguments.

  • Specify non-default config file
$uiveri5 ci-conf.js
  • Enable verbose logging
$uiveri5 -v
  • Run tests on different browser
$uiveri5 --browsers=firefox
  • Run tests against app deployed on a specific system
$uiveri5 --baseUrl="http://<host>:<port>/app"
  • Run tests against a remote selenium server
$uiveri5 --seleniumAddress="<host>:<port>/wd/hub"

Learn more

Learn how to build your tests in our Testing Guide.

Support

If you face a problem, please check our list of common issues. If you think you found a bug, please create a new github issue. If you have a question, please ask on StackOverflow.

Known Bugs

No major bugs known.

Release plan

See how we plan to continue in our TODO .

Related projects

Here we gather few projects that build on UIVeri5 and tailor it for specific usecases.

  • Docker container with UIVeri5, Chrome, Jenkins: Link

Automatic Downloads

By default, when running locally, UIVeri5 downloads selenium.jar and/or the respective webdrivers - chromedriver, geckodriver from their official locations. You can disable the downloading or change the locations in profile.conf.js. When using --seleniumAddress, nothing is downloaded.